私はレイアウトがより複雑になるように進化したケースがあります。 @section styleIncludes{ ... }
のような通常のものがあります。そして、現在のページブレッドクラムの構造のように、各ページがオプションで(しかしほとんどの場合は)指定できるすべての種類のものを定義するその他のセクションがあります。これらのすべてがセクションである理由は、レイアウトの構造に埋め込まれているためです。正確な彼らの綴り、またはピースミールコピー/ペーストを覚えしようとするのではなく、8かそこらの異なるセクションがありますので剃刀のセクション名のヒント/流暢?
私は、自分が前のページのコピーを作る見つけます。
これらのために流暢なAPIを作成して、8個の関数を持ち、それぞれがオブジェクトを返すようにしたいと思っています。そのため、Sections.Style(MVCテキストテンプレートやかみそりの編集?)パンフレット(等)
主な目的は、これらのセクションをガイド形式でコーディングして、完璧なタイピングやコピー/ペーストに頼るのではなく、名前を強く入力することです。
かみそり戻りMvcHtmlStringでただし、拡張/ヘルパー、と私は@sectionが完全に別のもので表されている想像してみてください。
私のために完全な解決策を書くように求めるのではなく、どのように先行するかについてのいくつかのアイデアを書いてください。
何物は@section
宣言を表現するためのヘルパー返す必要がありますか?I。 MvcHtmlStringの類推。
あなたは、スタイルやブレッドクラムのような、流暢なメソッドのパラメータの型を何を示唆していますか?私は、セクション宣言の中括弧の中にカミソリを書く能力が似ているように渡されたカミソリを欲しいと思います。たとえば、通常のセクション宣言と同様に、カミソリページで宣言されたローカル変数にアクセスする機能があります。私は本当に、私のCSHTMLページの多くは
@{
string title = "Edit Person"
ViewBag.Title = title;
}
@section styles{
.someOneOffPageSpecificStyle { width:59px }
}
@section javascript{
//javascript includes which the layout will place at the bottom...
}
@section breadcrumb{
<a ...>Parent Page</a> > <a ...>Sub Page</a> > @title
}
ような何かを始める場合、私はむしろ、このような流暢なAPIのseomの並べ替えを持っているだろう、つまり.SomeSection("<div...>Bunch of html stuffed in a string</div>")
のような文字列連結のようなものをないしたくありませんコードの結果として、スタイルのためではなく、コードを書くとインテリセンスがお手伝いしますので、タイプミスなどに問題がないことが容易になりますので:
@{
string title = "Edit Person"
ViewBag.Title = title;
}
@Sections
.Styles(@<text>
.someOneOffPageSpecificStyle { width:59px }
</text>)
.Javascript(@<text>
//javascript includes which the layout will place at the bottom...
</text>)
.Breadcrumb(@<text>
<a ...>Parent Page</a> > <a ...>Sub Page</a> > @title
</text>)
なぜ共通のレイアウトで組み立てられていないセクションがたくさんあるのですか? (そして私はあなたができるとは思わない、セクションを宣言し、それぞれの内部であなたの拡張メソッドを呼び出さなければならない) –
彼らは共通のレイアウトで組み立てられています。レイアウトのさまざまな部分に多くのセクションを定義できます。ブレッドクラムは1つの場所に表示され、別の場所にはスタイルなどが表示されますが、実際は同じレイアウトになっています。 – AaronLS
次に、一般的なレイアウトで一度しかやっていないので、なぜこれらのセクションをすべて生成するヘルパーメソッドが必要なのでしょうか? –