asp.net-mvc – 我在哪里可以初始化Orchard模块中的AutoMapper映
发布时间:2020-12-16 04:30:47 所属栏目:asp.Net 来源:网络整理
导读:我正忙着开发我的第一个非示例Orchard模块.它是一些控制器和视图,具有自定义(EF)数据访问,并且在很大程度上独立于Orchard内容类型和部件.通常我在Application_Start处理程序中设置映射,但由于此MVC模块中的操作将在Orchard应用程序的上下文中调用,因此我不再
我正忙着开发我的第一个非示例Orchard模块.它是一些控制器和视图,具有自定义(EF)数据访问,并且在很大程度上独立于Orchard内容类型和部件.通常我在Application_Start处理程序中设置映射,但由于此MVC模块中的操作将在Orchard应用程序的上下文中调用,因此我不再具有该入口点.我最明显和最直接的解决方案是将映射初始化移动到映射视图模型的静态构造函数,例如
public class ApplicantPersonalDetailsModel : MappedViewModel<Applicant> { static ApplicantPersonalDetailsModel() { Mapper.CreateMap<Applicant,ApplicantPersonalDetailsModel>().Bidirectional(); } .... } 我怎么能这样做?有没有更好的方法在MVC3 / 4中执行此操作,或者最好是,我可以在Orchard应用程序中获取的事件或钩子也可以在应用程序启动时实现此目的? 解决方法
我这样做的方法是实现IOrchardShellEvents
public class MenuOrchardShellEvents : IOrchardShellEvents { public void Activated() { Mapper.CreateMap<YSRB.Menu.Models.Records.Customer,YSRB.Menu.Models.ViewModels.CustomerViewModel>() .ForMember(c => c.CustomerType,m => m.MapFrom( x => (CustomerTypes)x.CustomerType ) ); Mapper.CreateMap<YSRB.Menu.Models.ViewModels.CustomerViewModel,YSRB.Menu.Models.Records.Customer>() .ForMember(c => c.CustomerType,m => m.MapFrom( x => (int)x.CustomerType ) ); } public void Terminating() { //Do nothing } } 希望这可以帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何在ASP.NET中创建一个简单的是/否弹出窗口,将结果返回给
- asp.net-core – 为什么需要在ASP.NET Core MVC中设置“Use
- 如何用asp.net页面提供javascript?
- asp.net-mvc – MVC项目中的System.Globalization.CultureN
- asp.net-core – 当我们执行“kpm restore”时存储依赖项的
- asp.net-mvc-2 – 如何在Asp.Net MVC中为HiddenFieldFor设置
- ASP.net网站配置文件的读写管理
- asp.net-web-api – oData $count不能与web api 4中的Entit
- Asp.Net MVC5 – Html.Action – 属性路由 – 导致异常的奇
- ASP.NET:禁用单个aspx页面的身份验证(自定义错误页面)?
推荐文章
站长推荐
热点阅读