Incrustar ContentPlaceHolder entre comillas dobles
-
03-07-2019 - |
Pregunta
Estoy usando .NET MVC, y en las páginas de visualización configuro un marcador de contenido que contiene una ID para usar en la página maestra de la siguiente manera:
Ver página:
<asp:Content ID="CDomBodyId" ContentPlaceHolderID="DomBodyId" runat="server">LmpDemoRequests</asp:Content>
Página maestra:
<body id='<asp:ContentPlaceHolder ID="DomBodyId" runat="server"></asp:ContentPlaceHolder>'>
Entonces, en este caso particular, la etiqueta del cuerpo se representaría así en la página HTML final:
<body id='LmpDemoRequests'>
Me gustaría tener comillas dobles alrededor de la etiqueta de identificación del cuerpo, pero invertir las comillas como las siguientes hace que intellisense no pueda encontrar el marcador de posición de contenido, lo que me da muchas advertencias cuando compilo.
<body id="<asp:ContentPlaceHolder ID='DomBodyId' runat='server'></asp:ContentPlaceHolder>">
¿Hay alguna forma de evitar esto?
Solución
Intente declarar BodyID como una propiedad de su MasterPage. Establezca su valor en las páginas Ver. Entonces puedes hacer algo como
<html>
<body='<%= BodyID %>'>
</body
</html>
Otros consejos
Este es un problema con el editor ASP.NET. No es específico de MVC. Creo que la solución es bastante buena y no veo un inconveniente específico.
No estoy seguro si he entendido mal su pregunta, pero también puede agregar:
<body id="site" runat="server"></body>
Y luego acceda a él en su página
HtmlControl body = (HtmlControl)Master.FindControl("site");
body.Attributes.Add("class", "LmpDemoRequests");
Espero haberte entendido correctamente.