在MVC3中回发时保留复选框值

时间:2013-05-14 03:07:07

标签: asp.net-mvc checkbox http-post

型号:

  public class UserViewModel
    {       
        public UserDetail user { get; set; }
        public List<int> SelectedRoles { get; set; }     
    }

HttpGet行动:

   public ActionResult Index()
   {
        ViewBag.Roles = list of roles (List<Roles>)
        return View();
   }

查看:

@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{      

    foreach (var item in ViewBag.Roles)
    {

      <input id="SelectedRoles" name="SelectedRoles" type="checkbox" value="@item.Id" >         
      @item.Name
    } 

    <input type="submit" value="Submit"/>  
}

HttpPost行动:

 [HttpPost]
  public ActionResult CreateUser(UserViewModel model, FormCollection form)
  {
     foreach (int roleId in model.SelectedRoles)
     {

         Here I am getting IDs of SelectedRoles as roleId
     }
  }

在HttpPost上我想要保留我选择的复选框值。如何在MVC3中做到这一点?

1 个答案:

答案 0 :(得分:0)

看起来复选框绑定到ViewBag上的属性。您必须在post操作中重新分配ViewBag上的角色,以便在执行post操作后呈现视图时可以反弹UI。 viewbag不会在不同的视图渲染之间保留,因此必须重置