【问题标题】:Razor Syntax Dynamically Name HTML ElementsRazor 语法动态命名 HTML 元素
【发布时间】:2011-07-27 06:36:49
【问题描述】:

我有一个表单,它使用这样的 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 的末尾?

谢谢

【问题讨论】:

  • 为什么不使用Html.CheckBoxFor,并指定name html 属性?此外,使用编辑器模板并保存foreach 循环。

标签: asp.net-mvc-3 razor


【解决方案1】:

您应该在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"/>
}

【讨论】:

    【解决方案2】:
    @for (int i = 0; i < Model.Tags.Count(); i++)
    {
    
            @Html.CheckBoxFor(model => Model.Tags[i])
    
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-11
      • 1970-01-01
      • 2012-01-23
      • 2013-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多