J'essaie de créer des pages maîtres imbriquées dans MVC. Dans la page maître principale, j'ai une vue partielle qui est rendue en utilisant Html.RenderPartial. Cela fonctionne très bien lors de l'utilisation de la page maître principale directement dans ma vue. Le problème se produit lorsque j'ai une page maître enfant de la page maître principale. Lorsque vous utilisez la page maître enfant, la méthode RenderPartial ne fonctionne pas. Le code est ci-dessous.MVC Master page et RenderPartial
Est-ce une limitation de RenderPartial?
page maître principal -
<%@ Master Language="VB" Inherits="System.Web.Mvc.ViewMasterPage"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title></title>
<style type="text/css">
html
{
background-color:gray;
}
.column
{
float:left;
width:300px;
border:solid 1px black;
margin-right:10px;
padding:5px;
background-color:white;
min-height:500px;
}
</style>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<h1>My Website</h1>
<div class="column">
<asp:ContentPlaceHolder ID="Column1Content" runat="server">
</asp:ContentPlaceHolder>
</div>
<div class="column">
<asp:ContentPlaceHolder ID="Column2Content" runat="server">
<%Html.RenderPartial("TestControl")%>
</asp:ContentPlaceHolder>
</div>
</body>
</html>
maître Enfant page -
<%@ Master Language="VB" Inherits="System.Web.Mvc.ViewMasterPage" MasterPageFile="~/Views/ViewJob/Parent.Master" %>
<asp:Content ID="head" ContentPlaceHolderID="head" runat="server">
<asp:ContentPlaceHolder ID="head" runat="server" >
</asp:ContentPlaceHolder>
</asp:Content>
<asp:Content ID="ContentPlaceHolder1" ContentPlaceHolderID="Column1Content" runat="server" >
<b>This is from the child master!!!</b>
<asp:ContentPlaceHolder ID="Column1Content" runat="server" />
</asp:Content>
<asp:Content ID="ContentPlaceHolder2" ContentPlaceHolderID="Column2Content" runat="server">
<asp:ContentPlaceHolder ID="Column2Content" runat="server" >
</asp:ContentPlaceHolder>
</asp:Content>
Que voulez-vous dire par 'ne fonctionne pas'? Plus de détails, s'il vous plaît ... –
Le code HTML n'est pas rendu. Il n'y a pas d'erreurs ou quoi que ce soit. Le contrôle n'est pas créé lors de l'utilisation de la page maître enfant. – Quadwwchs