我的显示模板“PlanAlternate”:
@model MyPlan
<div class="span4 compare-column compare-column1">
<div class="compare-row-plan">
<h3>@Model.Plan.Name</h3>
</div>
@foreach (var benefit in Model.Plan.Benefits)
{
<div class="compare-row-benefit-description">
@benefit.Description
</div>
}
<div class="compare-row-submit">
<input class="btn" type="submit" value="Apply Now" />
</div>
</div>
使用显示模板的我的视图:
@model IEnumerable<MyPlan>
<div class="span9 compare-data-wrapper">
@Html.DisplayForModel("PlanAlternate")
</div>
这会引发异常:
传入字典的模型项的类型为“System.Collections.Generic.List`1[MyPlan]”,但此字典需要“MyPlan”类型的模型项。
但是,如果我将显示模板从 PlanAlternate.cshtml 重命名为 MyPlan.cshtml 并使用
@Html.DisplayForModel()
一切正常。你能帮我理解为什么会这样吗?
谢谢!
编辑:
如果我完全按照上面描述的方式执行显示模板文件名与视图模型名称匹配的操作,但我将视图名称(“MyPlan”)传递给 DisplayForModel,它仍然会引发异常!不带参数调用 DisplayForModel 有效。这对我来说似乎非常非常奇怪。几乎就像一个错误,但我敢肯定这只是我不明白的事情。