繁体   English   中英

用于模型列表的for循环中的RadioButtonFor

[英]RadioButtonFor in a for loop for a model list

问题很简单,我有一个局部视图,其模型是一个列表。 我正在尝试为列表中的每个项目的布尔参数绑定单选按钮。 列表中只能选择一项,因此可以选择单选按钮。 该模型已正确绑定了所有其他应绑定到单选按钮的布尔值以外的参数。 下面的代码是我的局部代码的截断版本。

注意-由于我的应用具有多个路由,因此我需要使用“ BeginRouteForm”帮助器。 另外,我使用的是“ for”循环,而不是“ foreach”,因为当将其发送给控制器时,似乎foreach没有正确绑定我的模型。

@model TestListModel
@using (Ajax.BeginRouteForm("Default", new { action = "Submit", controller = "TheController" }, new AjaxOptions { OnSuccess = "DoSomething" })) {
<table>
    <thead>
        <tr>
            <th></th>
        </tr>
    </thead>
    <tbody>
        @for (int i = 0; i < Model.List.Count(); i ++) {
            @Html.HiddenFor(x => Model.List[i].Id)
            <tr>
                <td>
            @{
                Dictionary<string, object> attributes = new Dictionary<string, object>();
                attributes.Add("Name", "test");
                attributes.Add("id", "");
                @Html.RadioButtonFor(x => x.SelectedId, Model.List[i].Id, attributes)
            }
            </tr>
        }
    </tbody>
</table>
    <input type="submit" value="Submit" style="margin: 10px 0px 0px 0px;" />
}

更新:好的,所以我很笨(很可能是一天的结束),但是我正在对单选按钮进行建模,就好像它们是一个复选框。 解释为什么绑定无法正常工作。 我将上面的代码更新为新代码,现在我使用的是带有“ selectedid”而不是IEnumerable的模型。 问题是,它仍然无法正常工作

删除以下内容即可解决。

attributes.Add("Name", "test");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM