そのため、レイアウトが進化して複雑になったケースがあります。のような通常のものがあり@section styleIncludes{ ... }
ます。次に、現在のページのブレッドクラムの構造のように、各ページがオプションで (ただしほとんどの場合) 指定できるあらゆる種類のものを定義する他のセクションがあります。これらすべてがセクションである理由は、それらがレイアウトの構造に埋め込まれているためです。
前のページの正確なスペルを覚えたり、断片的なコピー/貼り付けをしたりするのではなく、8 つほどの異なるセクションがあるため、以前のページのコピーを作成していることに気づきました。
これらの流暢な API を作成して、それぞれがオブジェクト自体を返す 8 つの関数を持つオブジェクトを作成して、Sections.Style(some MVC text template または razor delgate ?).パンくず(など)
主な目的は、完全な入力やコピー/貼り付けに頼るのではなく、ガイド付きの方法でこれらのセクションをコーディングし、名前を厳密に入力できるようにすることです。
ただし、かみそりの拡張機能/ヘルパーは MvcHtmlString を返します。@section はまったく異なるもので表されると思います。
私のために完全な解決策を書くようにあなたに頼むのではなく、先行する方法についてのいくつかのアイデアです.
@section
宣言を表すためにヘルパーが返すべきオブジェクトはどれですか? つまり、MvcHtmlString のアナロジーです。
Style や Breadcrumb など、流暢なメソッドのパラメータ タイプを提案してください。 渡された razor が、セクション宣言の中かっこで razor を記述するのと同様の機能であることを望みます。たとえば、通常のセクション宣言と同じように、カミソリ ページで宣言されたローカル変数にアクセスできます。文字列連結のようなものはしたくない.SomeSection("<div...>Bunch of html stuffed in a string</div>")
言い換えれば、私の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 のようなものを使いたいと思っています。これは、結果として得られるコードのスタイルのためではなく、インテリセンスが支援するため、コードの記述が容易になり、タイプミスなどの問題が発生しないためです。
@{
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>)