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

Mar*_*tin 63 asp.net-mvc razor asp.net-mvc-3

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

<tr id="row<customer id>"></tr>
Run Code Online (Sandbox Code Playgroud)

我尝试添加此代码:

@foreach(var c in Model) {
   <tr id="row@c.id"></tr>
}
Run Code Online (Sandbox Code Playgroud)

这给了我以下输出:

<tr id="row@c.id"></tr>
<tr id="row@c.id"></tr>
Run Code Online (Sandbox Code Playgroud)

等等

但我希望它是:

<tr id="row1"></tr>
<tr id="row2"></tr>
Run Code Online (Sandbox Code Playgroud)

等等

我也尝试添加,<tr>row@{c.id}</tr>但它没有工作..

Bui*_*ted 111

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

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

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