ASP MVC填充模型作为List Exception

时间:2013-09-17 07:22:55

标签: asp.net-mvc list

我坚持使用以下代码:

我有一个Model OrderList,它只包含以下内容:

public class OrderList : List<Tuple<Bagel, BagelType, int>>
{

}

在我的控制器中,我想创建一个新的OrderList,并用函数填充它:

public ActionResult OrderReport()
    {
        OrderList lstitems = FillBagelCart2();

        return ViewPdf("Order report", "ReportView",lstitems);        
    }

FillBagelCart2 returns a List<Typle<Bagel, BagelType, int>> 

错误是:

错误14无法隐式转换类型'System.Collections.Generic.List&gt;'到'BestelBagels.Models.OrderList'。存在显式转换(您是否错过了演员?)

不知道为什么这不起作用..

迎接

已经有效了!我必须创建一个返回订单列表的函数,填充类似该列表的值。可以关闭

1 个答案:

答案 0 :(得分:2)

虽然你可以隐式地从OrderList强制转换为List<Tuple<Bagel,BagelType,int>>,因为它继承了它,你不能向相反的方向投射,因为OrderList可能包含方法和属性基本列表没有实现。

您需要将FillBagelCart2的返回类型更改为OrderList,或者为OrderList类提供相应的构造函数,以允许它获取现有集合。

public class OrderList : List<Tuple<Bagel, BagelType, int>>
{
    public OrderList() : base() {}

    public OrderList(IEnumerable<List<Tuple<Bagel,BagelType,int>> items) : base(items) {}
}

然后你可以做

OrderList lstitems = new OrderList(FillBagelCart2());