Incorpora ContentPlaceHolder tra virgolette doppie
-
03-07-2019 - |
Domanda
Sto usando .NET MVC e nelle pagine di visualizzazione ho impostato un contentplaceholder che contiene un ID da utilizzare sulla pagina principale in questo modo:
Visualizza pagina:
<asp:Content ID="CDomBodyId" ContentPlaceHolderID="DomBodyId" runat="server">LmpDemoRequests</asp:Content>
Pagina principale:
<body id='<asp:ContentPlaceHolder ID="DomBodyId" runat="server"></asp:ContentPlaceHolder>'>
Quindi, in questo caso particolare, il tag body verrebbe visualizzato in questo modo nella pagina HTML finale:
<body id='LmpDemoRequests'>
Vorrei avere le virgolette doppie attorno al tag id del corpo, ma capovolgendo le virgolette come le seguenti non si riesce a trovare l'intellettuale il contentplaceholder, dandomi un sacco di avvertimenti durante la compilazione.
<body id="<asp:ContentPlaceHolder ID='DomBodyId' runat='server'></asp:ContentPlaceHolder>">
C'è un modo per aggirare questo?
Soluzione
Prova a dichiarare BodyID come proprietà della tua MasterPage. Imposta il suo valore nelle pagine Visualizza. Quindi puoi fare qualcosa del genere
<html>
<body='<%= BodyID %>'>
</body
</html>
Altri suggerimenti
Questo è un problema con l'editor ASP.NET. Non è specifico per MVC. Penso che la soluzione alternativa sia abbastanza buona e non vedo uno svantaggio specifico.
Non sono sicuro di aver frainteso la tua domanda, ma puoi anche aggiungere:
<body id="site" runat="server"></body>
E quindi accedervi dalla tua pagina
HtmlControl body = (HtmlControl)Master.FindControl("site");
body.Attributes.Add("class", "LmpDemoRequests");
Spero di aver capito bene.