2010-09-03 8 views
1

Dans mon application, j'ai deux pages maîtres et ils sont utilisés dans différents cas. Dites qu'une vue principale ne fait que rendre la moitié supérieure de la page et une autre vue principale qui rend la moitié supérieure plus une barre de navigation sur le côté. Maintenant, dans mon contrôleur, mon action d'index se réfère à la page MasterPage avec la barre de navigation et un onglet de détails qui n'a pas besoin de la barre de navigation. Mais il y a un problème maintenant quand j'essaye de rendre la page de détails mon site se bloque sur le Site.MasterWithNavigation bien qu'il ne soit plus impliqué dans ma vue de détails. Je n'ai aucune idée de comment il atterrit là-bas. En attachant le débogueur et en vérifiant où le pae plante, il m'a montré qu'il plantait sur Site.MasterWithNavigation et en vérifiant la pile d'appels il y avait juste une entrée qui m'a conduit à mon autre Site.Master et montrait l'exception à une ligne de rendu de vue partielle aléatoire. Je pensais juste pour le plaisir de laisser un commentaire sur ce morceau de ligne et de nouveau vu le crash se produisant maintenant à une ligne différente où je rends un élément d'entrée HTML.Afficher le problème de rendu

Une idée de pourquoi diable je vois ça? Notez que nous avons d'autres pages qui utilisent la deuxième page maître, mais pour une raison quelconque, ils sont tous dans un contrôleur différent appelé WhateeverDetailsController. Pensez-vous qu'il y a un problème lorsque nous utilisons deux pages maîtres différentes à travers deux actions différentes dans le même contrôleur.

Répondre

0

Je ne sais pas pourquoi vous utilisez des pages maîtres multile ensemble, mais j'utiliser une page maître uniquement, et exposer les balises pertinentes à toutes les pages telles que:

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> 
    Title 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ScriptContentHolder" runat="server"> 
    <%= Html.Script("jquery-1.4.4.min.js")%> 
    <%= Html.Script("jquery-ui-1.8.7.min.js")%> 
    <%= Html.Script("MicrosoftAjax.js")%> 
    <%= Html.Script("MicrosoftMvcAjax.js")%> 
    <%= Html.Script("MicrosoftMvcValidation.js")%> 
</asp:Content> 
<asp:Content ID="Content3" ContentPlaceHolderID="MenuContent" runat="server"> 
    <% Html.RenderPartial("IManagerLinks"); %> 
</asp:Content> 
<asp:Content ID="Content4" ContentPlaceHolderID="MainContent" runat="server"> 
    <div id="leftContent50"> 
     <h4>add a new comment</h4> 
     <% Html.RenderPartial("AddCommentUC", Model.AddComment); %> 
    </div> 
    <div id="rightContent50"> 
     something else here 
    </div> 
    <br style="clear: both;" /> 
</asp:Content> 

Vous pouvez le faire très facilement la même chose pour la partie supérieure de votre page, partie latérale et titre et utilisez css pour tout styler.