1

したがって、MVC3 フレームワーク用の aspx レンダリング エンジンを使用すると、マスター レイアウト ページでセクションを定義し、すべてのページに表示されるセクション内に html または asp コードを挿入するのは簡単です。

マスターレイアウトについて

<!-- Secondary content -->
<div id="content-secondary">
  <asp:ContentPlaceHolder ID="NavigationSecondary" runat="server">
    <% Html.RenderAction("Menu", "Navigation", new { @id = "nav-secondary"}); %>
  </asp:ContentPlaceHolder>
  <asp:ContentPlaceHolder ID="cphSecondary" runat="server" />
</div>
<!-- /Secondary content -->

Menu が NavigationSecondary という ContentPlaceHolder 内にレンダリングされていることがわかります。そのため、私が作成するすべてのページには、デフォルトでメニューが表示され、その他の追加コンテンツはその下に表示されます。

では、Razor エンジンでこれをどのように解釈すればよいでしょうか。オンラインで多くの情報を見つけることができませんでした。デフォルトのコンテンツの使用方法を示すものを見つけました。しかし、別のページからコンテンツを挿入すると、デフォルトのコンテンツは消去されるのでしょうか?

4

1 に答える 1

1

Razor ビュー エンジンでは、レイアウト セクションがビューによって実装されているかどうかを (_Layout.cshtml で) チェックできるため、これを使用すると、内部にコードを配置することを模倣できますContentPlaceHolder

<div id="content-secondary">
    @if (IsSectionDefined("NavigationSecondary"))
    {
        Html.RenderAction("Menu", "Navigation", new {@id = "nav-secondary"});
        @RenderSection("NavigationSecondary")
    }
</div>

これがあなたが探しているものであることを願っています。

于 2012-06-15T16:42:30.863 に答える