S'Ok、次のモデルが与えられた場合:-
public class SomeViewModel
{
public IAnimal Animal { get; set; }
public Exception Exception { get; set; }
}
そして、IAnimal
これのどちらでもかまいません。
public class Cat : IAnimal { .. }
public class Dog : IAnimal { .. }
次のRazorコードを入力します
.. snip ..
@if (Model.Animal!= null)
{
Html.DisplayForModel(Model.Animal);
}
else if (Model.Exception != null)
{
Html.DisplayForModel(Model.Exception);
}
@Html.ActionLink("Lets go back home.", "Index")
モデルインスタンスがそれらの1つである場合、ビューは猫または犬のプロパティをレンダリングしていません。
現在、これらの各モデルは、ほんの数個の文字列やブールなどです。すべてのプリミティブ型。
そのため、モデルを渡すだけでレンダリングする必要があると思いました。
誰かが私がしたかもしれないことについて何か提案があります、間違っていますか?
また、ボーナスポイントの場合、これら2つのクラスのいずれか(たとえばクラス)の表示テンプレートを作成して、Cat
それをそのまま表示することは可能ですか?例えば。手動で作成するのではなく、自分自身を表示するように指示しHtml.Label
ます...など。