asp.net-mvc - una - razor partial
Página maestra de ASP.NET MVC2: la secuencia de comandos del lado del servidor no se representa, el primer paréntesis se escapó (2)
Lo he visto antes y es un dolor. Probablemente tengas un atributo runat = "sever" en tu etiqueta de cabecera así:
<head runat="server">
si acabas de hacerlo:
<head>
entonces no deberías ver este comportamiento.
Tengo una página maestra que estoy usando como plantilla para permitirme definir metaetiquetas por página. Mi página maestra contiene un modelo que contiene la metainformación, aquí hay un ejemplo de lo que intento hacer a continuación:
<meta name="description" content="<%= Model.description %>" />
<meta name="keywords" content="<%= Model.keywords %>" />
Sin embargo, cuando reviso el HTML una vez que la página es renderizada, obtengo esto:
<meta name="description" content="<= Model.description %>" />
<meta name="keywords" content="<= Model.keywords %>" />
Si content=<%= Model.description %>
las comillas externas del contenido, por ejemplo, content=<%= Model.description %>
, representa los datos. Parece que no le gustan las comillas que rodean.
¿Es esto un error con las páginas maestras? Si es así, ¿cuál sería la mejor solución alternativa para esto? Si no, ¿qué estoy haciendo mal?
Esto siempre ha sido un problema porque está intentando codificar los contenidos en los atributos. Puedes evitarlo haciendo esto en su lugar:
<%= string.Format("<meta name=/"description/" content=/"{0}/" />", Model.description) %>
<%= string.Format("<meta name=/"keywords/" content=/"{0}/" />", Model.keywords) %>
EDITAR: Este no es un problema específico de MasterPages. Publiqué una pregunta similar hace mucho tiempo aquí en SO preguntando al respecto y si lee la respuesta aceptada puede ver que el marco tiene un código específico para varios elementos en la etiqueta principal donde tendrá un formato de representación ligeramente diferente y codificará los datos.