我有一个管理用户事件,它接受一个可选的用户 ID 并显示一个用户编辑屏幕。这个屏幕有一个 manageUserViewModel 。
我的管理页面有一些依赖项 - 例如,PageTitle、提交的方法等。
如果我验证失败,我需要再次显示管理屏幕,但这一次,使用传递给同一方法的视图模型。
在失败场景中提供这些依赖项并不是很干燥。
如何逐步重复依赖项?我尝试将它们放入单独的方法中,但感觉不对。
public ActionResult Manage(Guid? UserID)
{
User user = this._UserLogic.GetUser(UserID);
ViewBag.Title = "User List";
ViewBag.OnSubmit = "Save";
ManageUserViewModel uvm = Mapper.Map<User, ManageUserViewModel>(user);
return View("Manage", uvm);
}
[AcceptVerbs("POST")]
public ActionResult Save(ManageUserViewModel uvm)
{
User user = this._UserLogic.GetUser(uvm.UserID);
if (!ModelState.IsValid)
// This is not very DRY!!!
ViewBag.Title = "Manage User";
ViewBag.OnSubmit = "Save";
return View("Manage", uvm);
}
Mapper.Map<ManageUserViewModel, User>(uvm, user );
this._UserLogic.SaveUser(user);
return RedirectToAction("Manage", new { UserID = user.ID });
}