【发布时间】:2014-05-18 02:49:40
【问题描述】:
假设我有三个类:Derived1ViewModel、Derived2ViewModel 和 BaseViewModel,它们是 Derived1ViewModel 和 Derived2ViewModel 的超类。
我有一个 DisplayTemplate,其模型为 List<BaseViewModel>,我想从用作模型的视图中调用此模板 List<Derived1ViewModel> 或 List< Derived2ViewModel>。
如果我尝试这样做,则会触发一个异常,指出它无法将 List<Derived1ViewModel> 或 List<Derived2VIewModel> 转换为 List<BaseViewModel>. 如果我尝试应用诸如 @Html.DisplayFor(model=>model.Cast<BaseViewModel>.ToList(), "MyTemplate") 之类的强制转换,则会引发 InvalidOperationException。
详情: [InvalidOperationException:模板只能与字段访问、属性访问、单维数组索引或单参数自定义索引器表达式一起使用。]
这个问题可以解决还是需要采取其他方法?
【问题讨论】:
标签: c# asp.net-mvc razor frontend