asp.net-mvc-3 – .NET MVC 3中的命令模式(从控制器中删除垃圾)
发布时间:2020-12-16 07:40:02 所属栏目:asp.Net 来源:网络整理
导读:我试图在我的.NET MVC 3应用程序上实现这个 Command Pattern,专门用于保存对Thing的编辑.我还没有决定如何继续.在我得到实际问题之前,这里是简化的代码: public class ThingController{ private readonly ICommandHandlerEditThingCommand handler; public
我试图在我的.NET MVC 3应用程序上实现这个
Command Pattern,专门用于保存对Thing的编辑.我还没有决定如何继续.在我得到实际问题之前,这里是简化的代码:
public class ThingController { private readonly ICommandHandler<EditThingCommand> handler; public ThingController(ICommandHandler<EditThingCommand> handler) { this.handler = handler; } public ActionMethod EditThing(int id) { ...build EditThingViewModel and return with View... } [HttpPost] public ActionMethod EditThing(int id,EditThingViewModel vm) { var command = new EditThingCommand { ...not sure yet... }; this.handler.Handle(command); ...redirect somewhere... } } 我的EditThingViewModel完全与我的域断开连接,该域由POCO类组成.看起来我的EditThingCommand应该如下所示: public class EditThingCommand { Thing ModifiedThing; } 但是,构建ModifiedThing仍然会在我的控制器中发生.这是本案中的大部分工作.在构建ModifiedThing时(以及应用于它的“旧”时间戳进行乐观并发检查),剩下的就是命令在我的数据上下文上调用Update. 显然,能够使用其他命令轻松装饰它是有价值的,但我也希望能够在我的控制器之外移动ModifiedThing的构造. (也许这个问题就是这个问题.)EditThingCommand在我的域中,没有对EditThingViewModel的引用,所以它不能去那里.在我的表示层中有另一个命令将我的viewmodel映射到我的poco实体是否有意义? 解决方法
我在域外创建了一个EditThingPostCommand,它将EditThingViewModel作为参数. EditThingPostCommandHandler负责创建EditThingCommand并调用其处理程序.
它有效,但我不会认为这是我问题的最佳答案.可以说,EditThingPostCommandHandler正在做的大部分工作都可以在自定义AutoMapper配置中完成,这仍然可以用于清理控制器操作方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-4 – 如何在ASP.NET MVC 4上使用SPA热毛巾模板
- asp.net – 如何删除日历的最后一周
- ASP.net ViewState – 即使在禁用时,也存在一些视图状态.为
- .Net Core技术研究-WebApi迁移ASP.NET Core2.0
- 在asp.net应用程序中管理与数据库的连接
- asp.net – 使用json仅序列化对象的一部分
- asp.net-mvc – ASP.NET MVC安全检查表
- ASP.NET MVC – MapRoute与routes.Add(和404s)
- asp.net-mvc-3 – MVC3:超出最大请求长度
- asp.net-mvc – 验证asp.net MVC中的只读输入不显眼的验证
推荐文章
站长推荐
- asp.net – HttpContext.Current.User.Identity.
- asp.net – ASP:NET确认密码字段
- asp.net-mvc – ASP.NET MVC ModelState始终对Fl
- asp.net – 获取浏览器和连接信息的页面
- asp.net-mvc – 带tab-id的RedirectToAction()
- asp.net – 在wcf服务中使用aspNetCompatibility
- .net – MVC3验证:无效时更改元素类
- asp.net – 缓存策略,输出缓存与数据缓存或两者兼
- asp.net-mvc – ASP.NET MVC – Model.OrderBy D
- asp.net-mvc – Linq离开外连接不起作用
热点阅读