レイアウトとテンプレートを混同しています。レイアウトは、すべてのビューの共通のコンテナーとして機能するベース フレームです。テンプレート (探しているもの) は、特定の (通常は特定の) タイプのデータを表示する方法です。
テンプレートを実装するには、2 つの基本的な方法があります。
1 つ目は、デフォルトのテンプレートとして定義することです。これは、単純な命名規則によって行われます。.cshtml ファイルの名前が Entity クラス名と同じであることを確認し、次の場所に配置してください。
/Views/Shared/DisplayTemplates/.cshtml
その後、テンプレートを使用してエンティティを表示するときはいつでも、@Html.DisplayFor()
ヘルパーを使用して、それに応じてオブジェクトを提供します。
または、別の方法でテンプレートを呼び出したい場合、またはすべての状況でテンプレートを使用したくない場合は[UIHint("TemplateName")]
、エンティティの属性を使用してテンプレート名を指定するか、DisplayFor() でテンプレート名を渡すことができます。
2 番目の方法は、部分ビューを使用することです。データの表示方法と使用方法の部分ビューを作成できます@Html.RenderPartial("TemplateName", object)
どちらのシナリオでも、VS インターフェイスを使用してテンプレート/部分ビューを簡単に作成できます。
- テンプレートを作成する DisplayTemplate (または他の場所) フォルダーを右クリックし、
Add>View...
- 名前を入力してチェックを入れる
Create a strongly-typed view
- 適切なオブジェクトを選択します (見つからない場合は、後で手動で行うことができますが、作業を簡素化するために少なくとも何かを選択することをお勧めします)
Details
足場テンプレートとして選択
- チェック
Create as partial view
ボックスをオンにします
- チェックを外す
Use a layout or master page
が渡すオブジェクトと一致することを確認して@model <Entity Name>
から、表示方法に必要な変更を加えます。
楽しみ!
-編集-
注: あなたの投稿をもう一度読んだ後、私はそれがあなたが求めているものと正確に一致しないかもしれないことに気付きましたが、それは非常に不明確です. どのように達成しようとしているのかではなく、何を達成しようとしているのかを詳しく説明できますか?
あなたが書いたコード スニペットはあまり意味がありません。