3

私の ASP.NET MVC アプリケーションの_ViewStart.cshtmlファイルには、次のようなコードがあります。

<div>SHOW THIS</div>

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

ページがレンダリングされると、_Layout.cshtml ページのコンテンツのに「SHOW THIS」が表示されることを期待していますが、代わりに「SHOW THIS」が_Layout.cshtml ページのコンテンツのに表示されています。

これは正しいです?そうでない場合、なぜこれが起こるのでしょうか?_Layout.cshtml コンテンツの上に表示する方法を提案できますか? ありがとう!

4

2 に答える 2

3

レイアウトが最初に読み込まれ、コンテンツがレイアウトのレンダリング コンテンツ セクションに挿入されます。このビューのレイアウトに何かを表示したい場合は、コントローラーで ViewBag オブジェクトを設定してから、レイアウトでその ViewBag オブジェクトを確認してください。

または、レイアウトでオプションのセクションを使用して、ビューで定義することもできます。

レイアウト:

@RenderSection("aboveSection", required: false)

次に、あなたの見解で:

@section aboveSection{
    <div>SOME CONTENT</div>
}
于 2012-11-13T22:19:22.660 に答える
0

これは予期される動作です。「_Layout.chshtml」行は、使用する親テンプレートのみを指定します。

コンテンツを再配置するには、_Layout.cshtml で調整を行い、どこに@RenderBody()あるかをメモします。

于 2012-11-13T22:20:02.693 に答える