【发布时间】:2010-04-06 21:48:03
【问题描述】:
当您有一个需要显示为界面控件的域对象时,例如下拉列表,ifwdev 建议创建一个扩展方法来添加一个 .ToSelectList()。
原始对象是一个对象列表,其属性与下拉列表的 .Text 和 .Value 属性相同。基本上,它是一个 SelectList 对象的列表,只是类名不同。
我想您可以使用反射将域对象转换为接口对象。有人对可以做到这一点的 C# 代码有任何建议吗? SelectList 是一个 MVC 的 SelectListItem 下拉列表。
想法当然是在视图中做这样的事情:
<%= Html.DropDownList("City",
(IEnumerable<SelectListItem>) ViewData["Cities"].ToSelectList() )
【问题讨论】:
-
通过反射,我的意思是读取源对象的属性并将它们与 SelectList 属性匹配,返回正确的 DropDownList 选择列表。
标签: asp.net-mvc domain-driven-design selectlist selectlistitem