大佬教程收集整理的这篇文章主要介绍了asp.net-mvc-4 – 如何让你的MVC控制器DRY为Edit-> Save-> ValidateFail,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的“管理”页面有一些依赖项 – 例如,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 }); }
不同的观点有不同的要求,创建一个复杂的结构只是为了避免重复自己违反其他最佳实践,如KISS和SRP.
SOLID很有意思,因为单一责任原则经常与不要重复自己不一致,你必须想出一个平衡点.在大多数情况下,DRY会因为SRP更为重要而失败.
在我看来,你在这里有代码处理多个职责,这样你就可以避免多次编写类似的代码.我不同意这样做,因为每个观点都有不同的责任和不同的要求.
我建议只为每个操作创建单独的控制器操作,视图和模型,特别是如果验证要求不同的话.您可以执行一些操作(例如使用部分视图或编辑器模板)来减少重复,但通常不会增加大量复杂性以避免重复.
以上是大佬教程为你收集整理的asp.net-mvc-4 – 如何让你的MVC控制器DRY为Edit-> Save-> ValidateFail全部内容,希望文章能够帮你解决asp.net-mvc-4 – 如何让你的MVC控制器DRY为Edit-> Save-> ValidateFail所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。