asp.net-mvc – 如何处理具有多个聚合根的视图模型?
目前,我的视角模型非常糟糕.
类看起来像这样=> public class AccountActionsForm { public Reader Reader { get; set; } //something... } 问题是Reader类型来自域模型(违反SRP). 基本上,我正在寻找设计技巧(即将视图模型拆分为输入/输出是一个好主意吗?)如何使我的视图模型无摩擦和开发人员友好(即 – 映射应该使用控制器基类自动工作) ? 我知道AutoMapper框架,我可能会使用它. 那么,再一次 – 尝试创建正确的视图模型时常见的问题是什么?如何构建它?当需要多域对象输入时,如何进行映射? 当视图需要来自多个聚合根的数据时,我感到困惑.我正在创建app,其中包含Library,Reader,BibliographicRecord等实体. 在我的情况下 – 在域级别,将所有这3种类型分组到LibraryReaderThatHasOrderedSomeBooks或诸如此类的东西是没有意义的,但是应该显示特定库中特定读者的有序书籍列表的视图需要它们. 所以 – 使用下面的OrderedBooksListModel视图模型创建视图OrderedBooksList似乎很好,它包含LibraryOutput,ReaderOutput和BibliographicRecordOutput视图模型.甚至更好 – OrderedBooksListModel视图模型,它利用flattening technique并具有ReaderFirstName,LibraryName等道具. 但这会导致映射问题,因为有多个输入. 那些纯粹存在于UI层的视图模型字段(即表示已检查选项卡的枚举)呢? this在这种情况下每个人都做了什么? FooBarViewData fbvd = new FooBarViewData(); fbvd.Foo = new Foo(){ A = "aaa"}; fbvd.Bar = new Bar(){ B = "bbb"}; return View(fbvd); 我不愿意这样做=> var fbvd = new FooBarViewData(); fbvd.FooOutput = _mapper.Map<Foo,FooOutput>(new Foo(){ A = "aaa"}); fbvd.BarOutput = _mapper.Map<Bar,BarOutput>(new Bar(){ B = "bbb"}); return View(fbvd); 好像很多写作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – 在MVC3中添加有关打印功能的数据
- asp.net – 在WCF中将对象数组序列化为JSON以符合OpenSearc
- 如果ASP.NET应用程序的CustomErrors设置为Off,有没有办法以
- asp.net – 为什么我的SiteMapPath在Firefox中有“Skip Nav
- asp.net – MVC3 Partial View需要一个控制器,但是我可以让
- asp.net – 新的dotnet核心项目无法恢复
- asp.net-core – ASP.NET Core Web Application控制台立即关
- asp.net – AngularJs 2与ASP.NET 4.5.1
- 如何在asp.net中使用控件状态
- asp.net – 是否需要在web.config中保护连接字符串?
- asp.net – 完全替换Swashbuckle UI
- asp.net-mvc – 我应该如何管理ASP.NET MVC 4应用
- 如何实现对上下文(Context)数据的统一管理 [提
- asp.net – 带有Guid参数的ASMX webservice
- asp.net-mvc – MVC .NET模型即时绑定到数组
- asp.net – Global.asax.cs事件在网站发布后未触
- DateTime数据注释在ASP.NET Core RC2应用程序中不
- 在ASP.NET 5中,如何在中间件中获取所选路由?
- asp.net-mvc – 不显眼的验证不适用于Ajax.Begin
- asp.net – 如何以编程方式将参数传递给SSRS报告