更新时间:2023-01-07 22:07:41
通过使用 BaseViewModel
的模板而不是 List< BaseViewModel>
的模板解决了该问题.这样,我可以将任何派生类型传递给模板(例如:Derived1ViewModel,Derived2ViewModel).
Solved the problem by using a template for BaseViewModel
instead of List<BaseViewModel>
. In this way, I can pass any derived type to the template (ex: Derived1ViewModel, Derived2ViewModel).
示例:
@*Derived1 View*@
@model List<Derived1ViewModel>
@for(var i = 0; i < Model.Count; i++)
{
int i1 = i;
@Html.DisplayFor(model=>model[i1], "MyTemplate")
}
@*Derived2 View*@
@model List<Derived2ViewModel>
@for(var i = 0; i < Model.Count; i++)
{
int i1 = i;
@Html.DisplayFor(model=>model[i1], "MyTemplate")
}
@*Template*@
@model BaseViewModel
<p>It works @Model.Name</p>