我在asp.net mvc 3中看到了许多编辑操作的例子,这就是我困惑的原因。例如,UpdateModel和TryUpdateModel方法如何工作?或者如果我想要更新并非所有字段,如何实现编辑操作?
有人能给我一个关于在asp.net 3中实现编辑操作的链接吗?
答案 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是不可能的。您可能还需要查看AutoMapper和Jimmy Bogard's blog,以便将视图模型映射到域模型。 Jimmy也有关于在asp.net mvc中使用ViewModels和AutoMapper的帖子。