繁体   English   中英

使用RadioButton将模型绑定到ASP.NET MVC中的对象列表

[英]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.

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