代码之家  ›  专栏  ›  技术社区  ›  Thomas

双引号之间的Razor代码

  •  7
  • Thomas  · 技术社区  · 14 年前

    在Razor视图引擎模板中,我想执行以下操作:我想放置一些 代码 在html的双引号之间 属性 . 问题是我要插入的代码本身包含一些双引号。

    <a href="Url.Action("Item", new { id = Model.Item.Id, page = page });">@page</a>
    

    你可以很容易地看到事情是如何变得可怕地错误:-)我知道我可以计算变量中的链接,然后使用它,但我不想:

    @{ var action = Url.Action("Question", new { id = Model.Question.Id, page = page }); }                   
    <a href="@action">@page</a>                                        
    
    3 回复  |  直到 14 年前
        1
  •  19
  •   Softlion    13 年前

    你不需要逃跑或者用剃刀什么的。Razor足够聪明,可以知道引号何时在属性内,因为在解析时,您将转义到html之外。

    <a href="@Url.Action("Item", 
           new { id = Model.Item.Id, page = page })">@page</a>
    

    代码可以正常工作-只要确保 @ 前面的符号 Url.Action 打电话是因为如果你不这样做,它就不能被正确地解析,我注意到你的问题中没有这个问题。

    编辑:已删除;作为Url。操作不是语句。

        2
  •  8
  •   Darin Dimitrov    14 年前

    也许我不明白你的问题,在这种情况下,请纠正我,但你不能简单地:

    @Html.ActionLink(page, "Question", new { id = Model.Question.Id, page = page })
    
        3
  •  1
  •   Pranav 웃 n1kkou    11 年前

    这可能是正确的:

    href="@(action)"> @page