オプションのユーザー ID を受け取り、ユーザー編集画面を表示する Manage User イベントがあります。この画面に対応する manageUserViewModel があります。
私の管理ページにはいくつかの依存関係があります。たとえば、PageTitle、送信先のメソッドなどです。
検証に失敗した場合は、もう一度管理画面を表示する必要がありますが、今回は同じメソッドに渡されたビューモデルを使用します。
失敗のシナリオでこれらの依存関係を提供することは、あまり DRY ではありません。
依存関係を繰り返すにはどうすればよいですか? それらを別のメソッドに入れてみましたが、それは正しくありません。
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 });
}