【问题标题】:How can I reference MVC item/model in HTMLAttributes?如何在 HTMLAttributes 中引用 MVC 项目/模型?
【发布时间】:2011-08-26 09:06:35
【问题描述】:

我试图在表格的每一行中列出两个单选按钮,但我无法为每个单选按钮分配唯一的 ID。我想根据@item.myID 分配ID,如下所示:

@foreach (var item in Model)
{
    <tr>
        <td>
            @Html.RadioButton("Yes", @item.myID, @item.IsCool, new { id = "@item.myID", autopostback = "true" })
            @Html.RadioButton("No", @item.myID, !@item.IsCool, new { id = "@item.myID", autopostback = "true" })
        </td>
    </tr>
}

但是,ID 一直呈现为“@item.myID”。换句话说,它没有将@ 符号视为特殊字符。我也尝试过使用括号,例如:“@(item.myID)”。

【问题讨论】:

    标签: asp.net-mvc-3 razor


    【解决方案1】:

    您需要删除 id 分配周围的引号,像这样;

    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.RadioButton("Yes", item.myID, item.IsCool, new { id = item.myID, autopostback = "true" })
                @Html.RadioButton("No", item.myID, !item.IsCool, new { id = item.myID, autopostback = "true" })
            </td>
        </tr>
    }
    

    另外,请注意,当您已经在另一个 Razor 代码块的上下文中时,不需要额外的“@”符号 - Razor 视图引擎非常聪明 :)

    【讨论】:

    • 另外,建议保持 id 唯一,单选按钮将按“名称”分组
    • 如果我没记错的话,你也不需要 item.myID 旁边的“@”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-07
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多