1

従来の ASP.NET アプリケーション (ASPX ページ) を ASP.NET MVC 3 に移植しています。現在、ContentPlaceHolder を使用して、コンテンツを特定の ASP.NET ASPX ページに動的に追加しています。次の点を考慮してください。

<!DOCTYPE html>
<html>
    <head>
        <link href="MyStyleSheet.css" rel="Stylesheet" type="text/css" />
        <asp:ContentPlaceHolder ID="Styles">
        </asp:ContentPlaceHolder>
        <script type="text/javascript" src="jQueryAndOtherScripts.js"></script>
        <asp:ContentPlaceHolder ID="Scripts">
        </asp:ContentPlaceHolder>
    </head>
    <body>
        <div id="Container">
            <asp:ContentPlaceHolder ID="Content">
            </asp:ContentPlaceHolder>
        </div>
    </body>
</html>

上記のスニペットには 3 つのコンテンツ プレース ホルダーがあるため、個々のページに基づいてスタイル、スクリプト、およびコンテンツを追加できます。このようにした理由は、各ページがページのコンテンツに関連するスタイル、スクリプトのみをロードするようにするためです (たとえば、ログイン ページの場合、ログインの詳細が有効であることを確認するスクリプトを追加する可能性があります)。

次の MVC 3 Razor View スニペットを検討してください。

<!DOCTYPE html>
<html>
    <head>
        <link href="MyStyleSheet.css" rel="Stylesheet" type="text/css" />
        <script type="text/javascript" src="jQueryAndOtherScripts.js"></script>
    </head>
    <body>
        <div id="Container">
            @RenderBody()
        </div>
    </body>
</html>

さて、問題は... RenderBody() が を置き換えますが、 and<asp:ContentPlaceHolder ID="Content"></asp:ContentPlaceHolder>の代わりに何を使用すればよいでしょうか?<asp:ContentPlaceHolder ID="Styles"></asp:ContentPlaceHolder><asp:ContentPlaceHolder ID="Scripts"></asp:ContentPlaceHolder>

4

2 に答える 2

3

この目的のためのセクションがあります。

于 2012-07-17T10:48:49.090 に答える
1

Sectionsこれを達成する方法です。このテーマに関する ScottGu によるこの優れた投稿をチェックしてください。

http://weblogs.asp.net/scottgu/archive/2010/12/30/asp-net-mvc-3-layouts-and-sections-with-razor.aspx

于 2012-07-17T10:53:48.057 に答える