Razor语法动态命名HTML元素

时间:2011-07-27 06:36:49

标签: asp.net-mvc-3 razor

我有一个表单,使用像这样的Razor代码创建了许多复选框元素

   foreach (var tag in Model.Tags)
    {
        <input type="checkbox" id="@tag.ID" name="@tag.ID" value="@tag.TagName"/>@tag.TagName<br /
    }

这有效但我希望ID和名称采用这种格式chkTag [TagID]我试过这个

<input type="checkbox" id="chkTag@tag.ID" name="chkTag@tag.ID" value="@tag.TagName"/>

但Razor只是将整个事物视为字符串并将其命名为chkTag@tag.ID。

所以我想我的问题是如何将动态剃刀ID添加到我的姓名和ID的末尾?

由于

2 个答案:

答案 0 :(得分:42)

您应该在tag.ID周围使用括号,如下所示:

chkTag@(tag.ID)

完整代码:

foreach (var tag in Model.Tags)
{
    <input type="checkbox" id="chkTag@(tag.ID)" name="chkTag@(tag.ID)" value="@tag.TagName"/>
}

答案 1 :(得分:4)

@for (int i = 0; i < Model.Tags.Count(); i++)
{

        @Html.CheckBoxFor(model => Model.Tags[i])

}

这应该正常。它会自动给出正确的名称。