ASP.NET MVC 5中Index.cshtml里RadioButtonFor的使用问题
问题原因及解决办法
首先排查页面顶部的模型声明:
- 如果你的Index.cshtml顶部是
@model IEnumerable<你的实体类>这类集合模型,那就是问题所在。DisplayNameFor可以通过集合元素推断出属性的显示名称,但RadioButtonFor需要直接绑定到单个实体的属性,集合本身并没有IsEnrolled属性,所以会报错。
对应解决方式
1. 遍历集合生成单选按钮(适用于列表页)
如果页面确实需要展示多个实体的单选按钮,用foreach循环遍历模型集合,针对每个子项生成控件:
@foreach (var item in Model) { <span style="margin-left:10px;"> @Html.RadioButtonFor(m => item.IsEnrolled, true) Enrolled </span> }
注:如果IsEnrolled是bool类型,第二个参数要传true/false,而不是字符串"Enrolled";如果是字符串类型,注意不要带多余空格。
2. 修改模型为单个实体(适用于详情/编辑页)
如果Index页面本就应该绑定单个实体而非列表,把顶部的模型声明改成单个实体类型:
@model 你的命名空间.你的实体类
之后再使用RadioButtonFor(model => model.IsEnrolled, 对应值)就可以正常识别属性了。
内容的提问来源于stack exchange,提问作者khurj
相关产品推荐
相关产品推荐

