在Razor View Engine模板中,我想执行以下操作:我想在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>
答案 0 :(得分:19)
你不需要使用Razor逃脱或任何事情。 Razor很聪明,可以知道什么时候引号属于属性,因为你在解析它时会在html之外转义。
<a href="@Url.Action("Item",
new { id = Model.Item.Id, page = page })">@page</a>
该代码可以正常工作 - 只需确保在@
电话前面有Url.Action
符号,因为如果不这样做,它将无法正确解析,我注意到你没有在你的问题中有它。
编辑:删除;因为Url.Action不是声明。
答案 1 :(得分:8)
也许我不明白你的问题在哪种情况下请纠正我,但不能简单地说:
@Html.ActionLink(page, "Question", new { id = Model.Question.Id, page = page })
答案 2 :(得分:1)
这可能是正确的:
href="@(action)"> @page