在Post上处理Viewmodel

时间:2011-11-24 09:19:21

标签: asp.net-mvc many-to-many viewmodel

我最近一直在学习.MVC,并且在回发时无法理解如何处理视图模型。我已经按照这里的示例进行了操作:http://www.shawnmclean.com/blog/2011/04/asp-net-mvc-multiple-check-boxes-in-an-array-or-list/#codesyntax_2我的问题是如何在回发时处理viewmodel,以便用正确的角色保存用户?我是否必须手动从视图模型中提取值并将所选角色分配给用户?

所有帮助表示赞赏!

詹姆斯

1 个答案:

答案 0 :(得分:0)

是的,你必须这样做。这是您链接处理的代码。 Action接收ViewModel对象并在某个UserService中调用Method来完成实际工作:

[HttpPost]
public ActionResult EditUserRole(UserRoleViewModel model)
{
    List<Role> roles = model.Roles.Where(r => r.IsInRole)
            .Select(r => new Role {RoleId = r.RoleId, RoleName = r.RoleName})
            .ToList();
    userService.AddRolesToUser(model.UserId, roles);
    return View();
}