Question

J'utilise .NET MVC et, dans les pages de vue, je définis un détenteur de contenu contenant un identifiant à utiliser sur la page maître, comme suit:

Afficher la page:

<asp:Content ID="CDomBodyId" ContentPlaceHolderID="DomBodyId" runat="server">LmpDemoRequests</asp:Content>

Page maître:

<body id='<asp:ContentPlaceHolder ID="DomBodyId" runat="server"></asp:ContentPlaceHolder>'>

Donc, dans ce cas particulier, la balise body serait rendue comme ceci sur la page HTML finale:

<body id='LmpDemoRequests'>

Je voudrais avoir des guillemets doubles autour de la balise body id, mais inverser les guillemets comme suit empêche IntelliSense de trouver le détenteur de ContentPlace, ce qui me donne de nombreux avertissements lors de la compilation.

<body id="<asp:ContentPlaceHolder ID='DomBodyId' runat='server'></asp:ContentPlaceHolder>">

Y at-il un moyen de contourner cela?

Était-ce utile?

La solution

Essayez de déclarer BodyID en tant que propriété de votre page maître. Définissez sa valeur dans les pages d'affichage. Ensuite, vous pouvez faire quelque chose comme <html> <body='<%= BodyID %>'> </body </html>

Autres conseils

Ceci est un problème avec l'éditeur ASP.NET. Ce n'est pas spécifique à MVC. Je pense que la solution de contournement est plutôt bonne et que je ne vois pas d'inconvénient particulier.

Vous n'êtes pas sûr d'avoir mal compris votre question, mais vous pouvez également ajouter:

<body id="site" runat="server"></body>

Puis accédez-y sur votre page

HtmlControl body = (HtmlControl)Master.FindControl("site");
body.Attributes.Add("class", "LmpDemoRequests");

J'espère vous avoir bien compris.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top