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

时间:2015-12-15 09:45:40

标签: c# asp.net-mvc asp.net-mvc-4

我查看列表数据,我想编辑一些字段 example as image, list view data, and edit it

我有一个字段(例如:choosed_value,其值为1,2,3,4,5) 在视图中,我使用radiobutton从choosed_value获取值, 但是当我提交保存时,我无法从radiobutton中选择价值, 字段'内容'保存确定,字段' choosed_value'不救。

我的代码

在视图中

查看radiobutton

@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>
}

如果choosed_value = 1,则radiobutton值为1,checked = 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();
 }

请帮帮我......

3 个答案:

答案 0 :(得分:0)

我认为您的radiobutton名称不正确(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>
}

答案 1 :(得分:0)

使用浏览器开发工具查看实际传递给控制器​​的数据。应该有一些名称为&#39; contents&#39;或模型绑定器无法拾取它们。

答案 2 :(得分:0)

首先,我们不应该直接从action方法调用数据库。 现在,您的ViewModel列表应该是List<SelectListItem>类型,这样您就可以直接获得“选定”项目的值。