如何使AutoMapper调用方法映射视图模型后,

难道possbile使AutoMapper调用映射源和目的地之后的方法?

我的视图模型看起来是这样的:

public class ShowCategoriesViewModel { public int category_id { get; set; } public string category_name { get; set; } public List<MvcApplication3.Models.Category> SubCategories { get; set; } public void Sort() { SubCategories.Sort(new CompareCategory()); } }

而我的控制器看起来像这样:

public ActionResult Index() { var category = db.Category.Where(y => y.parrent_id == null).ToList(); Mapper.CreateMap<Category, ShowCategoriesViewModel>(). ForMember(dest => dest.SubCategories, opt => opt.MapFrom(origin => origin.Category1)); List<ShowCategoriesViewModel> scvm = Mapper.Map<List<Category>, List<ShowCategoriesViewModel>>(category); foreach (ShowCategoriesViewModel model in scvm) { model.Sort(); } return View(scvm); }

我想有AutoMapper调用sort()方法,而不是做一个foreach循环。 这可能吗?

--------------解决方案-------------

我想你可以在这里使用.AfterMap

Mapper.CreateMap<Category, ShowCategoriesViewModel>()
.ForMember(dest => dest.SubCategories, opt => opt.MapFrom(origin => origin.Category1))
.AfterMap((c,s) => s.Sort());

分类:asp.net的MVC 3 时间:2012-01-01 人气:0
本文关键词: automapper,asp.net MVC 3
分享到:

相关文章

  • NHibernate的,AutoMapper和ASP.NET MVC 2012-12-05

    我想了解一下"最佳实践"使用NHibernate,AutoMapper和ASP.NET MVC. 目前,我使用的是: class Entity { public int Id { get; set; } public string Label { get; set; } } class Model { public int Id { get; set; } public string Label { get; set; } } 实体和模型映射是这样的: Mapper.CreateMap

  • Lucene.Net时,SQL Server,NHibernate的,ASP.NET MVC 2013-02-10

    我使用这些技术:SQL Server 2005中,ASP.NET MVC,NHibernate的/尖锐的架构,并希望挖掘一些文字介绍一些基于网络的统计数据的最终目的. 我有几百万关键字和几百万的文件,并想运行基于这些文件的关键字索引的一些查询. 我打了一下与SQL Server的全文索引,但我没有太深刻的印象. 所以,我想知道Lucene.Net是否可能是一种选择. 我从来没有使用Lucene.Net却明白,这是一个1:Java版本1口. 所以我的第一个问题是,它是否是值得研究的书"的Lucen

  • 与NHibernate,ASP.NET MVC和下拉工作 2015-03-13

    我们使用ASP.NET MVC与NHibernate和我们想创建一个使用从数据库值(自定义类)的几个下拉列表. 这实际上是工作,但我怎么处理"空"的价值; 我的意思是,"未选中"DropdownValue? 像" - 选择 - "在列表顶部...有没有人有这个组合NHibernate的,ASP.NET MVC和下拉经验? 谢谢! --------------解决方案------------- 我觉得这是很容易通过使用一个ViewModel类处理.

  • 使用的Default.aspx /控制器/动作风格URL时,ASP.NET MVC路由失败 2012-01-09

    我部署一个ASP.NET MVC的网站到IIS6 web服务器,所以我使用的Default.aspx / {控制器} / {行动}风格的策略路由. 但是,由于某种原因,它并没有真正使用的Default.aspx零件时工作. 无论是URL,它总是得到默认的动作(指数)的默认控制器(公共)上. 我一直在使用的优秀路由调试已经看到发生了什么事情. 正如你所看到的,我要求的Default.aspx /接触,这应该与第三路由表中. 在表中(我的理解是最后一个)其实什么是我的Default.aspx后写/匹

  • 工作方法与延迟加载的关注,NHibernate的,ASP.NET MVC,温莎城堡股 2012-02-03

    给定一个较简单的结构在C#... class Member { virtual string Email { get; set; } virtual IList<Character> Characters { get; set; } } class Character { virtual string Name { get; set; } } interface IMemberRepository { MemberCreateStatus CreateMember(string email,

  • jQuery的验证,ASP.NET MVC的ModelState错误(异步POST) 2012-06-07

    我发展与asp.net MVC 3 web应用程序,我有某种形式的发布到异步操作(通过AJAX). 这一行动收到<br/>一些数据注释的视图模型来验证它. 验证工作正常,但当验证器返回一个错误,我不知道我怎么能返回它在我的视图来显示(因为POST被阿贾克斯制造). 我的动作是一样的东西: [HttpPost] public ActionResult SaveCustomer(CustomerViewModel input) { if (!ModelState.IsValid) { // <

  • 从asp.net MVC 1.0移植项目时,ASP.NET MVC 2公测一些单元测试失败 2012-08-19

    当我迁移从史蒂夫·桑德森的临ASP.NET MVC框架示例SportsStore应用程序(从asp.net 1.0到MVC 2测试版)使用这个程序由埃里克·利普顿,一切都只是正常工作提供了 - 除了2单元测试. 两个错误消息是: Tests.CartControllerTests.VeryLongTestMethodName: System.ArgumentNullException:值不能是未定义. 参数名:上下文 我怀疑这是因为在第2版默认的模型绑定支持的DataAnnotations,因为

  • 什么是Web的开发预约系统,asp.net mvc的70百万计的人最好的方法? 2012-09-13

    我将开发与asp.net mvc的预约申请? 此应用程序将使用70米人. 而至少30000 - 40000用户登录到系统在同一时间. 什么是开发这种强烈的应用程序与asp.net MVC和SQL Server的最佳方法? 能否请您分享您对这个观点? --------------解决方案------------- 让你的SQL例程尽可能高效,选择更多的数据比你需要和缓存它在Web服务器上,只有当无效其实是有任何新的内容. 缓存通过IIS网页,并通过缓存替换检索关键不可缓存的数据. 投资于一群真正的

  • 建立开发环境,ASP.NET MVC 2012-09-20

    我从PHP背景. 我以前使用Apache,MySQL和PHP的Web开发. 我刚开始asp.net mvc的. 我有Visual Studio中我的计算机上已安装2008专业版SP1和.NET 3.5 SP1. 所以,我安装了ASP.NET MVC 1.0 创造了"ASP.NET MVC Web应用程序"项目 当我按F5提示错误无法连接到ASP.NET开发服务器 难怪. 在这个过程中我没有设置网络服务器. 我可以使用Apache吗? 我猜是IIS的默认. 它在哪? 如何配置呢? 什么是

  • 在开发环境中收集数据,ASP.NET MVC阻止谷歌分析 2012-09-29

    我有一个ASP.NET MVC(3)应用程序,我已经设置谷歌分析了. 问题是,每次我从Visual Studio运行时间谷歌脚本启动收集数据,当然,偏斜的实际结果. 什么是阻止谷歌Analytics(分析)收集有关其他,使用丑陋开发环境数据的最佳方式#if 每一页我想在编译器指令进行分析? 什么是最好的做法? 谢谢. --------------解决方案------------- 由谷歌建议的最佳实践是使用过滤器从您的配置文件的GA删除数据. 这可以通过滤波的基础上开发机器的IP地址,或通过设置

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 3.196 (s). 10 q(s)