我想弄清楚这个简单的事情,但实际上我很尴尬地问这样一个新手问题。我很习惯mvc2,我几天前跳进了我的第一个mvc3项目。无论如何,问题是如何在类名或id中添加模型值
<div class="remove-MODEL.ID">body...</div>
在mvc2中它的简单
<div class="remove-<%= Model.Id %>">body...</div>
我当前的代码和尝试是(WORKS)
<div class="remove-@Model.Id">body...</div>
我尝试了一种字符串格式(WORKS)
<div class="@string.format("{0}", Model.Id)">body...</div>
我真的不知道,就像我说这么简单的事情变得最难:)
修改
这真的很奇怪,但经过几次尝试,我的第三个和第四个建议都有效
Erik Philips 回答了解有关此问题的信息。
答案 0 :(得分:2)
这是Razor引擎的次要限制之一。问题在于引擎能够确定@是razor语法还是常规html文本。当剃刀输出为<prefixvalue>@<model>.<value>
时,此示例可能会频繁发生,因为它类似于电子邮件表达式<name>@<emailprovider>.com
。您可以通过在括号中包围表达式来强制引擎采用剃刀语法(例如@(model.id)
)。
答案 1 :(得分:0)
在我的项目中,我正在使用此代码:
<div class="remove_@Model.ElementAt(0).id">body...</div>
效果很好。