2011-01-11 11 views
0

私はRenderPartialsを使って作業しなければならないプロジェクトから、面倒なMasterPageを整理しようとしました。そのコードは本当に読めないものでした。ユーザーの役割に応じて、メインのコンテンツデータが途中で表示されます。サイトは私が手レンダリングするときしかしHtml.RenderPartial in MasterPage

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

:ContentPartialViewで、ユーザーの役割を確認した後、私は最終的にタグを使用し、

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

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

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

その後:私はこれをしませんでした"マスターページにContentPlaceHolder 'MainContent'が見つかりません"というエラーメッセージが表示されます。ですから、私の質問はこれです、MasterPageでRenderPartialsを使用してASP ContentHoldersをそれらの中に入れることは可能ですか?何故ですか? MasterPageを再構成する別の方法があるので、よりクリーンで読みやすくすることができますか?事前にアドバイスをいただきありがとうございます。

答えて

1

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

関連する問題