2

type として宣言されているモデル プロパティがありList<MyClass>ます。

public class MyModel
{
    List<MyClass> MyProperty { get; set; }
}

Razor テンプレートを使用してプロパティを表示/編集できるようにしたいと考えています。私の質問は、通常の構文を使用してプロパティを表示できるように、 EditorTemplate ビューに名前を付ける方法です。

@model MyModel
@Html.DisplayFor(m => m.MyProperty)

type に使用される MyClass.cshtml というビューを作成できることはわかっていますがMyClass、リストのテンプレートを作成するにはどうすればよいですか?

4

1 に答える 1

7

[UIHint]次の属性を使用できます。

public class MyModel
{
    [UIHint("TemplateForTheList")]
    public List<MyClass> MyProperty { get; set; }
}

DisplayForまたはヘルパーの 2 番目のパラメーターとしてテンプレート名を指定します。

@model MyModel
@Html.DisplayFor(m => m.MyProperty, "TemplateForTheList")

次に、TemplateForTheList.cshtmlテンプレートを用意します。

@model List<MyClass>
...

この場合、テンプレート エンジンは、コレクション プロパティの各要素のテンプレートをレンダリングしません。コレクション自体をテンプレートに渡すだけです。

于 2013-06-05T13:20:28.473 に答える