asp.net-mvc – 如何编写C#Extension方法将Domain Model对象转换
发布时间:2020-12-16 07:15:08 所属栏目:asp.Net 来源:网络整理
导读:当您有一个需要显示为接口控件的域对象(如下拉列表)时,ifwdev建议创建一个扩展方法来添加.ToSelectList(). 原始对象是具有与下拉列表的.Text和.Value属性相同的属性的对象列表.基本上,它是SelectList对象的List,而不是同一个类名. 我想你可以使用反射将域对
当您有一个需要显示为接口控件的域对象(如下拉列表)时,ifwdev建议创建一个扩展方法来添加.ToSelectList().
原始对象是具有与下拉列表的.Text和.Value属性相同的属性的对象列表.基本上,它是SelectList对象的List,而不是同一个类名. 我想你可以使用反射将域对象转换为接口对象.任何人对C#代码都有任何建议吗? SelectList是SelectListItem的MVC下拉列表. 当然,想法是在视图中做这样的事情: <%= Html.DropDownList("City",(IEnumerable<SelectListItem>) ViewData["Cities"].ToSelectList() ) 解决方法
制作ViewModel对象的SelectList部分更容易.
无论如何,你只需要遍历IEnumerable并将每个项添加到一个新的SelectList对象并返回它. public static List<SelectListItem> ToSelectList<T>(this IEnumerable<T> enumerable,Func<T,string> text,string> value,string defaultOption) { var items = enumerable.Select(f => new SelectListItem() { Text = text(f),Value = value(f) }).ToList(); items.Insert(0,new SelectListItem() { Text = defaultOption,Value = "-1" }); return items; } How to refactor these 2 similar methods into one? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 初识ABP vNext(9):ABP模块化开发-文件管理
- 使用VSCode如何调试C#控制台程序_2_加深总结
- asp.net-mvc – 谁设置HttpContext.User.Identity的IsAuthe
- 多租户成员资格提供程序ASP.NET MVC
- asp.net-mvc – 使用Windows身份验证和OWIN的ASP.NET MVC5
- “前.NET Core时代”如何实现跨平台代码重用 ——源文件重用
- asp.net – 为什么IFormFile显示为null,我该如何解决?
- asp.net-mvc-3 – 在代码MVC Razor中呈现局部视图
- C# 文件复制帮助类
- ASP.NET:将ViewState移动到页面底部
推荐文章
站长推荐
- ASP.NET动态命令按钮事件未触发
- Asp.Net:将值从Page传递给UserControl
- asp.net-core – 具有取消令牌的自定义AspCore中
- asp.net – .NET Application_BeginRequest – 如
- asp.net-mvc – LINQ to Entities无法识别方法异
- 在(asp.net wcf)Web应用程序中存储文件的最佳方法
- asp.net – 如何维护N层体系结构中的事务
- ASP.NET Web API 2:通过本机移动(iOS)应用程序与
- asp.net – 为什么IIS首次访问速度慢,但之后更快
- asp.net-web-api – 构造函数依赖注入WebApi属性
热点阅读