asp.net-mvc - Razor View 语法无法识别 HTML 属性中的 "@"

标签 asp.net-mvc razor asp.net-mvc-migration

我正在将一个项目从 MVC 2 迁移到 MVC3 和 razor View 引擎。

在 MVC 2 中,我会有以下 html:

<div id="del_<%= Model.ActivityID.ToString() %>"></div>

使用 razor 时,我尝试了以下操作,当我想要 del_1 时,它会呈现文字文本“del_@Model.ActivityID.ToString()”。

<div id="del_@Model.ActivityID.ToString()"></div>

为了解决这个问题,我使用了:

<div id="@Model.ActivityID.ToString()_del"></div>

有办法让 razor 使用这种语法吗?

<div id="del_@Model.ActivityID.ToString()"></div>

最佳答案

您必须在特定模型值周围使用@(),如下所示:

<div id="del_@(Model.ActivityID.ToString())"></div>

这样做的原因是因为 del_@Model.ActivityID 对于解析器来说看起来像一个电子邮件地址,默认情况下解析器会尝试忽略电子邮件地址,因此您不必做一些愚蠢的事情就像john@@doe.com一样,因为电子邮件很常见,每次都这样做会很烦人。因此,从事 razor 解析器工作的人们只是想:“如果它看起来像一封电子邮件,请忽略它”。这就是您遇到这个特定问题的原因。

关于asp.net-mvc - Razor View 语法无法识别 HTML 属性中的 "@",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4377317/

相关文章:

asp.net-mvc - Razor:无法在 @Section 中渲染 Html.Label 帮助程序(仅输出源)

c# - 上传Excel文件并提取数据-asp.net mvc 3

c# - mvc 对数字的默认验证

c# - ModelState.isvalid 返回 false?

asp.net-mvc - MvcRazorToPdf 将内容对齐到页面底部

c# - 在升级的MVC项目中使用ExceptionFilterAttribute

.net - 替换字符串中的空格,mvc razor

asp.net-mvc - MVC - ADFS 身份验证 - ADFS 重定向到本地主机

c# - 我如何在 MVC 中实现两个 Controller