在类名中添加模型值?

时间:2012-03-25 16:07:17

标签: c# asp.net asp.net-mvc-3 razor

我想弄清楚这个简单的事情,但实际上我很尴尬地问这样一个新手问题。我很习惯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 回答了解有关此问题的信息。

2 个答案:

答案 0 :(得分:2)

这是Razor引擎的次要限制之一。问题在于引擎能够确定@是razor语法还是常规html文本。当剃刀输出为<prefixvalue>@<model>.<value>时,此示例可能会频繁发生,因为它类似于电子邮件表达式<name>@<emailprovider>.com。您可以通过在括号中包围表达式来强制引擎采用剃刀语法(例如@(model.id))。

答案 1 :(得分:0)

在我的项目中,我正在使用此代码:

<div class="remove_@Model.ElementAt(0).id">body...</div>

效果很好。