html元素属性中的Razor语法(ASP MVC 3)

时间:2010-09-12 18:44:57

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

我有一个包含重复客户行的表,我想将客户ID添加到我的表行的ID属性中,如下所示:

<tr id="row<customer id>"></tr>

我尝试添加此代码:

@foreach(var c in Model) {
   <tr id="row@c.id"></tr>
}

这给了我以下输出:

<tr id="row@c.id"></tr>
<tr id="row@c.id"></tr>

但我希望如此:

<tr id="row1"></tr>
<tr id="row2"></tr>

我还尝试添加<tr>row@{c.id}</tr>,但它无效..

1 个答案:

答案 0 :(得分:109)

你试过<tr>row@(c.id)</tr>吗?

这不起作用的实际原因是因为您的row@c.id正则表达式匹配电子邮件地址。因此,解析器假定它是一封电子邮件而不是实际上是一种调用代码的尝试。 row@{c.id}不起作用的原因是因为@{}没有输出并且意味着包含代码块。

如果有疑问,您应该使用@(),因为它会强制将()之间包含的内容解析为代码。