我們假設我有三個類:Derived1ViewModel
,Derived2ViewModel
和BaseViewModel
,它用作Derived1ViewModel
和Derived2ViewModel
的超類。MVC Html.DisplayFor衍生模型列表
我有具有作爲List<BaseViewModel>
模型的DisplayTemplate,我想打電話從使用作爲List<Derived1ViewModel>
或List< Derived2ViewModel>
一個模型視圖此模板。
如果我試圖做到這一點,一個異常被觸發說,它不能轉換List<Derived1ViewModel>
或List<Derived2VIewModel>
到List<BaseViewModel>.
如果我嘗試應用如@Html.DisplayFor(model=>model.Cast<BaseViewModel>.ToList(), "MyTemplate")
,則會引發InvalidOperationException鑄造。
詳細說明: [InvalidOperationException異常:模板只能與現場訪問,屬性訪問,一維數組的索引,或者單參數定製索引表達式中使用]
能這個問題被解決或它的必要採取另一種方法?
它仍然觸發一個InvalidOperationException。 [InvalidOperationException:模板只能與字段訪問,屬性訪問,單維數組索引或單參數自定義索引器表達式一起使用。] – IsKernel