asp.net-mvc-3 - Razor 语法动态命名HTML元素

标签 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的末尾添加动态 Razor ID?

谢谢

最佳答案

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

关于asp.net-mvc-3 - Razor 语法动态命名HTML元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6840311/

相关文章:

css - 对齐选择框下方的链接按钮

javascript - Backbone : using partial fetch versus 1 collection through the whole lifespan of the application

c# - 如何在运行时使用 List<T> 上的 EditorFor() 更改 View

javascript - 如何在 View 中将 MVC 模型字符串作为纯文本获取

asp.net-mvc-3 - ASP.NET MVC3 Razor : How to follow a modular architecture?

c# - 在两个模型或 Razor 页面之间传递 ID

c# - Asp.net MVC 中的数据传输对象

asp.net - AuthenticationManager.SignIn() 未登录

javascript - 将 Razor 数据插入 src 和 href 属性

asp.net - 我可以通过通用的 try/catch 优雅地运行 Controller 中的每个 ContentResult 吗?