0

模型:

  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 中做到这一点?

4

1 回答 1

0

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

于 2013-05-14T03:11:36.447 回答