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()
が、それらはプレゼンテーションではなくビジネス ロジックに属します。それは罪でしょう。
選択肢は1つしかありません@Html.Partial(Model.GetType().Name)
が、それは間違っていると感じています。メタマジックのない解決策を期待しています。より良い方法はありますか?