繁体   English   中英

如何在ASP.NET MVC中返回EntityCollection类型的对象以与SelectList一起使用?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM