2012-08-10 48 views
0

在复选框列表数据我有我的查看用户的列表:填充,并检索MVC3

foreach (var user in (List<GetWorkDone.Model.Accounts.User>)ViewBag.users) 
{ 
} 

和用户是:

public class User 
{ 
    public int UserId { get; set; } 
    public string Name { get; set; } 
} 

我需要向用户显示的列表复选框,并获得在选定的ActionResult仅复选框:

public ActionResult AssignUser(List<User> users) 
{ 
} 
+1

而你的视图强烈键入哪个模型? – Jorge 2012-08-10 15:07:23

+0

这是用另一个模型输入我发布用户到AssignUser ActionResult – 2012-08-10 15:11:22

回答

3

使用视图模型:

public class UserViewModel 
{ 
    public int UserId { get; set; } 
    public string Name { get; set; } 
    public boolean IsSelected { get; set; } 
} 

然后:

public class UsersController: Controller 
{ 
    public ActionResult Index() 
    { 
     var users = new UserViewModel[] 
     { 
      // TODO: obviously those could come from a database or something 
      new UserViewModel { UserId = 1, Name = "user 1" }, 
      new UserViewModel { UserId = 2, Name = "user 2" }, 
      new UserViewModel { UserId = 3, Name = "user 3" }, 
     }; 
     return View(users); 
    } 

    public ActionResult Index(UserViewModel[] users) 
    { 
     ... you could inspect the IsSelected property of each user here   
    } 
} 

终于有一个强类型的视图:

@model UserViewModel[] 
@using (Html.BeginForm()) 
{ 
    @for (var i = 0; i < Model.Length; i++) 
    { 
     <div> 
      @Html.HiddenFor(x => x[i].UserId) 
      @Html.HiddenFor(x => x[i].Name) 
      @Html.DisplayFor(x => x[i].Name) 
      @Html.CheckBoxFor(x => x[i].IsSelected) 
     </div> 
    } 
    <button type="submit">OK</button> 
} 

而且如果你已经有一些其他的模式,那么,适应它,并使用视图模型:

public class AssignUserViewModel 
{ 
    public UserViewModel[] Users { get; set; } 

    ... some other properties that you already have 
} 

然后:

@model AssignUserViewModel 

@using (Html.BeginForm()) 
{ 
    @for (var i = 0; i < Model.Users.Length; i++) 
    { 
     <div> 
      @Html.HiddenFor(x => x.Users[i].UserId) 
      @Html.HiddenFor(x => x.Users[i].Name) 
      @Html.DisplayFor(x => x.Users[i].Name) 
      @Html.CheckBoxFor(x => x.Users[i].IsSelected) 
     </div> 
    } 

    ... some other fields 

    <button type="submit">OK</button> 
} 

结论:使用视图模型 - 总是

+0

对我来说太快XD !!!我没有机会完成我的回答... – Jorge 2012-08-10 15:14:25