0

コードが本当に読めなかったので、RenderPartialsを使用して、作業しなければならないプロジェクトから乱雑なMasterPageを整理しようとしました。ユーザーの役割に応じて、メインコンテンツデータは何らかの方法で表示されます。これは私がしました:

<!-- Header -->
<% Html.RenderPartial("SiteHeaderPartialView"); %>

<!-- Content -->
<% Html.RenderPartial("ContentPartialView"); %>

<!--Footer -->
<% Html.RenderPartial("SiteFooterPartialView"); %>

次に、ContentPartialViewで、ユーザーの役割を確認した後、最終的にタグを使用します。

<asp:ContentPlaceHolder ID="MainContent" runat="server">
</asp:ContentPlaceHolder> 

しかし、サイトがレンダリングされると、「マスターページにContentPlaceHolder'MainContent'が見つかりません」というエラーメッセージが表示されます。だから、私の質問はこれです、MasterPageでRenderPartialsを使用してASPContentHoldersをそれらの中に置くことは可能ですか?何故ですか?MasterPageを再編成して、見た目をすっきりさせて読みやすくする別の方法はありますか?よろしくお願いします。

4

1 に答える 1

1

asp:ContentPlaceHolderタグはマスターページで使用する必要があります。コンテンツページでは、を使用する必要がありますasp:Content。ただし、Html.RenderPartialそれらを使用することはできません。指定された場所に部分的なASCXページを挿入するだけです。したがって、レイアウトを作成する3つの一般的な方法はasp:ContentPlaceHolderasp:Contentタグを使用する方法Html.RenderPartialと、Html.RenderAction/Html.Actionヘルパーです。

于 2011-01-12T07:33:52.993 に答える