プロパティTypeを定義するときに Display Template 名を指定することはできますか?
たとえば、いくつかのクラスがあります。
public interface IFoo {}
public class Foo : IFoo {}
public class Bar : IFoo {}
それから私はモデルを持っています:
public class MyModel{
IFoo IFooExample {get;set;}
}
次に、ビューでレンダリングしたいIFooExample
:
@model MyModel
@Html.DisplayFor(x => x.IFooExample)
Foo
同じ表示テンプレートをBar
共有できます~/Views/Shared/DisplayTemplates/IFoo.cshtml
。Foo.cshtml
このロジックをMvc にプラグインして、Bar.cshtml
ビューDisplayFor
(@Html.DisplayFor(x => x.IFooExample, "IFoo.cshtml")
また、モデルを UIHint 属性で装飾したくありません。と の定義に関する情報を指定したいと思いFoo
ますBar
。
[UIHint("IFoo.cshtml")]
public class Foo : IFoo{}
[UIHint("IFoo.cshtml")]
public class Bar : IFoo{}
ただし、UIHint
sはクラス レベルでは適用できません。これを行う別の方法はありますか?