asp.net-mvc - 双引号之间的 Razor 代码

标签 asp.net-mvc asp.net-mvc-3 razor templating

在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>                                        

最佳答案

您无需使用Razor即可逃脱或进行任何操作。 Razor足够聪明,可以知道引号何时位于属性内,因为您在解析html时会转义到html之外。

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

该代码可以正常工作-只需确保在@调用前面有Url.Action符号,因为如果不这样做,它将无法正确解析,并且我注意到您的问题中没有。

编辑:删除;因为Url.Action不是语句。

关于asp.net-mvc - 双引号之间的 Razor 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4249770/

相关文章:

c# - 在 Asp.Net MVC 中循环多级动态菜单

asp.net-mvc-3 - 将 MetadataType 添加到 C# 中的派生类

asp.net-mvc-3 - Orchard CMS Ajax 登录时防伪造 token

javascript - 使用 jQuery 更改链接的路由值

html - Razor - 从数组中应用随机 CSS 类

c# - 即使在模型定义中修复了 get set 之后,模型在 Controller 中仍为 null

javascript - 使用 sammy.js 重新加载页面

jquery - 从 microsoft Ajax.BeginForm 迁移到 jquery

c# - 如何显示数据库存储的问题,允许单独的答案

razor - Microsoft.AspNetCore.Mvc 中的 Toastr 通知