[英]How can I return an object of type EntityCollection for use with a SelectList in ASP.NET MVC?
我对ASP.NET MVC HtmlHelper
中的DropDownList
进行了扩展,以使其呈现optgroup
。 当第二个集合是IList
,它可以正常工作,但是我很快发现,如果不是,或者在我的情况下是EntityCollection
它会崩溃,因为SelectList
无法枚举它。
因此,我在这里寻求任何知道如何绕过此问题的人的帮助。 我考虑过传入第二个集合是什么Type
,然后在内部执行强制转换,但这感觉并不正确...
无论如何,我希望有人可以帮助我,这是当前的代码:
internal IList<GroupListItem> GetListItems() {
return (from object Item in Items
select new GroupListItem {
Children = new SelectList((Eval(Item, this.ChildrenField) as IEnumerable), this.ChildDataValueField, this.ChildDataTextField, this.ChildSelectedValue),
Label = (Eval(Item, this.LabelField) as string)
}).ToList();
}
private static object Eval(
object Container,
string Expression) {
object Value = Container;
if (!String.IsNullOrEmpty(Expression)) {
Value = DataBinder.Eval(Container, Expression);
};
if (Value is IList) {
return Value;
};
return Convert.ToString(Value, CultureInfo.CurrentCulture);
}
您是否考虑过使用IEnumerable代替IList?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.