[英]Model Binding To List Of Objects In ASP.NET MVC with RadioButton
我查看列表数据,我想编辑一些字段示例作为图像,列出视图数据,然后对其进行编辑
我在视图中有一个字段(例如:choosed_value,值分别为1,2,3,4,5),我使用单选按钮从choosed_value获取值,但是当我提交保存时,我无法从单选按钮中获取选择的值,字段“内容”保存成功,字段“ choosed_value”不保存。
我的代码
鉴于
查看单选按钮
@for (int j = 1; j <= 5; j++)
{
<td>
@Html.RadioButton(Model[i].ID.ToString(), Model[i].choosed_value,Model[i].choosed_value == j) ? true : false )
</td>
}
如果selected_value = 1,则单选按钮的值为= 1,选中= true
在控制器中
[HttpPost]
public ActionResult Index(List<Content> contents)
{
DEMOEntities DbContent = new DEMOEntities();
foreach (Content cont in contents)
{
Content Existed_Cont = DbContent.Contents.Find(cont.ID);
Existed_Cont.Content = cont.Content;
Existed_Cont.choosed_value = cont.choosed_value;
}
DbContent.SaveChanges();
}
请帮我 ...
我认为您的单选按钮名称不正确(Html.RadioButton的第一个参数)。 浏览器中的结果输入名称不应为ID,它应类似于[0] .choosed_value,以便在POST上进行正确的模型绑定。
@for (int j = 1; j <= 5; j++)
{
<td>
@Html.RadioButtonFor(x => Model[i].choosed_value, ...)
</td>
}
代替
@for (int j = 1; j <= 5; j++)
{
<td>
@Html.RadioButton(Model[i].ID.ToString(), Model[i].choosed_value,Model[i].choosed_value == j) ? true : false )
</td>
}
使用浏览器开发工具查看实际作为数据传递到控制器的内容。 应该有一些名称为“ contents”的字段,否则model-binder无法拾取它们。
首先,我们不应该直接从action方法进行数据库调用。 现在,您的ViewModel列表应该是List<SelectListItem>
类型,这样您就可以直接获得“ selected”项目的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.