ASP.NET мастер - страницы:как вставить разметку в раздел head внутри aspx?
-
05-09-2019 - |
Вопрос
Я знаю, что могу получите доступ к разделу head страницы, которая программно использует главную страницу таким образом (в коде позади):
Это только пример (Я бы хотел вставить скрипты, стили и т.д.):
this.Header.Title = "I just set the page's title";
Есть ли простой способ сделать это в декларативный путь вперед в самом aspx-файле?
Иногда было бы удобно вставить клиентский скрипт или a объявление стиля или ссылка на внешний ресурс.
Решение
Вы можете сделать это, используя области содержимого в head
, точно таким же образом , как вы поступили бы в body
страницы.например, на вашей главной странице:
<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>
А затем на самой странице просто что-то вроде:
<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>
Другие советы
Для таблица стилей вы можете использовать это :
HtmlLink cssRef = new HtmlLink();
cssRef.Href = "addins/main.css";
cssRef.Attributes["rel"] = "stylesheet";
cssRef.Attributes["type"] = "text/css";
Page.Header.Controls.Add(cssRef);
Для Мета - теги :
HtmlMeta metaTag = new HtmlMeta();
metaTag.Name = "author";
metaTag.Content = "ScarletGarden";
Page.Header.Controls.Add(metaTag);
Но нет никакого способа добавить внешние файлы скрипта в элемент заголовка.
Вы можете добавить внутренний элемент body с помощью :
if (!ClientScript.IsClientScriptIncludeRegistered("myExternalScript"))
{
ClientScript.RegisterClientScriptInclude("myExternalScript", "js/myJSFile.js");
}
Надеюсь , это поможет !
Вы можете указать заголовок страницы в объявлении страницы содержимого.
<%@ Title="Page Title" Page Language="C#" AutoEventWireup="true" CodeFile="Subpage.aspx.cs" Inherits="Subpage" MasterPageFile="~/MasterPage.master" %>
Я этого еще не пробовал.
Но вы можете поместить элемент HEAD внутри html с вложенной строкой в разметке в стиле asp.
например ,<%=myTitle%>