私はまだ MVC に慣れていて、ビジュアル表示に多くの「タイル」(標準化されたヘッダーといくつかのコンテンツを持つ通常の「長方形セクション」パターン) を使用するサイトに取り組んでいます。レイアウトとナビゲーションを容易にするためにコンテンツをボックスに入れる方法にすぎません。現在、「タイル」(私の用語) は次のように構築されています。
<div class="tile">
<div class="tile-header">
<h2>Title</h2>
</div>
<div class="tile-body">
(arbitrary content)
</div>
</div>
注: 「任意のコンテンツ」とは、静的または動的なコンテンツを意味するため、必ずしも変数にプラグインしてヘルパーに渡すことができるものではありません。もう少し柔軟性が必要です。
私の質問は、このパターンをカプセル化し、コードからの呼び出しをより簡単/より表現力豊かにするために使用する最適な方法は何ですか? 部分ビューについては知っていますが、任意の本文コンテンツを部分ビューに渡すにはどうすればよいですか? (これは単に MVC 表示に関する私の限られた知識かもしれません)
次のような Razor ヘルパーを作成してみました。
@Tile.Begin("Title")
(arbitrary content)
@Tile.End()
しかし、「タイル本体」の終了 div を含めることができないため、Razor がチョークします。(そうする場合、本文の内容を文字列変数として渡す必要があり、それが常に実現できるとは限りません)
私はこのようなものを見ることができました:
@using (Tile.Begin("Title")) {
(arbitrary content)
}
@Tile.Begin() および @Tile.End() 呼び出しほど簡単ではありませんが、これは私には最もエレガントに思えます。私が理解していることからすると、クラスを作成して IDisposable を実装する必要がありますが、ヘルパー クラスから生の HTML タグの文字列を返そうとすると、エンコードされたタグ構文が画面に表示されるだけだったので、ここで同じ問題?
アドバイスをありがとう。:)