我正在将一个项目从 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/