Las páginas maestras de ASP.NET: ¿cómo insertar el marcado en la sección principal dentro del aspx?
header master-pages (4)
Sé que puedo acceder a la sección principal de una página que usa una página maestra programáticamente de esta manera (en código subyacente):
Esto es solo un ejemplo (me gustaría insertar scripts y estilos, etc.):
this.Header.Title = "I just set the page''s title";
¿Hay una manera simple de hacer esto de manera declarativa en el archivo aspx mismo ?
A veces sería útil insertar un script de cliente o una declaración de estilo o un enlace a un recurso externo.
No he intentado esto.
Pero puede colocar el elemento HEAD dentro de html con la cadena adjunta en el marcado de estilo asp.
por ejemplo, <%=myTitle%>
Para la hoja de estilo puedes usar esto:
HtmlLink cssRef = new HtmlLink();
cssRef.Href = "addins/main.css";
cssRef.Attributes["rel"] = "stylesheet";
cssRef.Attributes["type"] = "text/css";
Page.Header.Controls.Add(cssRef);
Para Meta Tags :
HtmlMeta metaTag = new HtmlMeta();
metaTag.Name = "author";
metaTag.Content = "ScarletGarden";
Page.Header.Controls.Add(metaTag);
Pero no hay forma de agregar archivos de script externos al elemento del encabezado.
Puedes agregar el elemento interior del cuerpo de la siguiente manera:
if (!ClientScript.IsClientScriptIncludeRegistered("myExternalScript"))
{
ClientScript.RegisterClientScriptInclude("myExternalScript", "js/myJSFile.js");
}
Espero que esto ayude !
Puede declarar el título de la página en la declaración de la página de contenido.
<%@ Title="Page Title" Page Language="C#" AutoEventWireup="true" CodeFile="Subpage.aspx.cs" Inherits="Subpage" MasterPageFile="~/MasterPage.master" %>
Puede hacer esto usando regiones de contenido en la head
, exactamente de la misma manera que lo haría en el body
de la página. Por ejemplo, en tu página maestra:
<head>
<link type="text/css" rel="stylesheet" href="/styles/common1.css" />
<script type="text/javascript" src="/scripts/common1.js"></script>
<asp:contentplaceholder id="ExtraStylesAndScripts" runat="server" />
</head>
Y luego en la página en sí algo como:
<asp:content contentplaceholderid="ExtraStylesAndScripts" runat="server">
<link type="text/css" rel="stylesheet" href="/styles/extra1.css" />
<link type="text/css" rel="stylesheet" href="/styles/extra2.css" />
<script type="text/javascript" src="/scripts/extra1.js"></script>
<script type="text/javascript" src="/scripts/extra2.js"></script>
</asp:content>