我有一Item
堂课。我有大约 10-20 个衍生品,每个衍生品都包含不同类型的数据。现在,当涉及到渲染不同类型的Item
.
<div>
@if (Model is XItem)
{
... rendering logic 1 ...
}
@if (Model is YItem)
{
... rendering logic 2 ...
}
@if (Model is ZItem)
{
... rendering logic 3 ...
}
... goes on and on forever ...
</div>
不幸的是@Html.DisplayFor()
,在这种情况下不起作用,因为显示的是,Model
的类型。Item
DisplayTemplates\Item.cshtml
由于相同的“if/is”链,HTML 助手也无济于事。
我可以将渲染逻辑合并到类本身中,然后调用,@Model.Render()
但它们属于业务逻辑,而不是表示。这将是一种罪过。
只有一个选项,@Html.Partial(Model.GetType().Name)
但感觉不对。您期望一个没有元魔法的解决方案。有没有更好的办法?