Tho*_*mas 7 asp.net-mvc templating razor asp.net-mvc-3
在Razor View Engine模板中,我想执行以下操作:我想在html 属性的双引号之间放置一些代码.麻烦的是我要插入的代码片段本身包含一些双引号.
<a href="Url.Action("Item", new { id = Model.Item.Id, page = page });">@page</a>
Run Code Online (Sandbox Code Playgroud)
你可以很容易地看到事情变得非常糟糕:-)我知道我可以计算变量中的链接然后使用它,但我宁愿不:
@{ var action = Url.Action("Question", new { id = Model.Question.Id, page = page }); }
<a href="@action">@page</a>
Run Code Online (Sandbox Code Playgroud)
Bui*_*ted 19
你不需要使用Razor逃脱或任何东西.Razor非常聪明,可以知道什么时候引号属于属性,因为当你解析它时你会在html之外转义.
<a href="@Url.Action("Item",
new { id = Model.Item.Id, page = page })">@page</a>
Run Code Online (Sandbox Code Playgroud)
该代码将正常工作 - 只要确保你@在Url.Action调用前有符号,因为如果你没有它将无法正确解析,我注意到你的问题没有.
编辑:删除; 因为Url.Action不是声明.
也许我不明白你的问题在哪种情况下请纠正我,但不能简单地说:
@Html.ActionLink(page, "Question", new { id = Model.Question.Id, page = page })
Run Code Online (Sandbox Code Playgroud)