使用c#和razor设置html元素的ID

Jac*_*ler 3 c# asp.net-mvc razor

本质上,我需要为每个循环使用一个表来显示新行。一行中有一个名称,因此我想给td标记一个“ CatName” + i的ID,其中i是循环的迭代。例如,如果我们在循环的第二次迭代中,则id为“ CatName2”。在下面发布的代码中,我尝试使用@调用c#代码,但它只会返回编译错误:

Only assignment, call, increment, decrement, and new object expressions can be used as a statement

@{
    int i = 0;
}
@foreach (CategoryVM category in Model.CategoryList)
{
    <tr>
        <td id="@{"CatName" + i.ToString()}"></td>
    </tr>
    i++;
}
Run Code Online (Sandbox Code Playgroud)

And*_*y G 5

使用括号()而不是大括号来评估C#表达式。

所以改变

<td id="@{"CatName" + i.ToString()}"></td>
Run Code Online (Sandbox Code Playgroud)

<td id="@("CatName" + i.ToString())"></td>
Run Code Online (Sandbox Code Playgroud)

错误是确认其中的内容@{ }应该是完整的语句,而不是表达式。