ASP.NET мастер - страницы:как вставить разметку в раздел head внутри aspx?

StackOverflow https://stackoverflow.com/questions/568717

Вопрос

Я знаю, что могу получите доступ к разделу 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%>

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top