2013-05-14 36 views
0

型号:回发坚持MVC3复选框值

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

回答

0

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

+0

我应该怎么做? – user1120418 2013-05-14 03:45:12