在asp.net mvc 3中实现编辑操作

时间:2011-10-28 11:55:08

标签: asp.net-mvc-3 razor

我在asp.net mvc 3中看到了许多编辑操作的例子,这就是我困惑的原因。例如,UpdateModel和TryUpdateModel方法如何工作?或者如果我想要更新并非所有字段,如何实现编辑操作?

有人能给我一个关于在asp.net 3中实现编辑操作的链接吗?

1 个答案:

答案 0 :(得分:1)

仅更新所需字段的最佳方法是为其创建单独的视图模型。例如,假设你有这样的用户类

public class User
{
     public int Id {get;set;}
     public string UserName {get;set}
     public bool IsAdmin {get;set;}
}

并且假设您不希望让用户为IsAdmin属性提供价值。您可以像这样(没有IsAdmin字段)

创建视图模型
public class EditUserViewModel
{
     public int Id {get;set;}
     public string UserName {get;set}
}

编辑动作伪某事

public ActionResult Edit(EdituserViewModel model)
{
     If(ModelState.IsValid)
     {
        User user = _repository.GetUser(model.Id);
        user.UserName = model.UserName;
        _repository.Update(user);
        return RedirectToAction("Index");
     }
     return View(model);
}

这样,从客户端提供IsAdmin是不可能的。您可能还需要查看AutoMapperJimmy Bogard's blog,以便将视图模型映射到域模型。 Jimmy也有关于在asp.net mvc中使用ViewModels和AutoMapper的帖子。