В предыдущих программах ASP мы часто использовали Response.Write для динамического вывода информации заголовка веб-страницы, но в ASP.NET так называемый руководящий принцип разделения кода и пользовательского интерфейса больше не требует от нас этого (конечно, если вы хотите, вы можете, это В конце концов, это всего лишь предложение). Я видел, как другие использовали <title ranut="server" id="titleControl">Заголовок по умолчанию</title> для установки заголовка, но я этого не делаю. Я не думаю, что это очень хорошо, потому что он будет генерировать избыточный id="titleControl" Лично я считаю, что лучше использовать элемент управления Literal, потому что он не создает избыточный символ :) Некоторые люди также используют js для динамического задания заголовка. , но что вы просите сделать поисковую систему?
На самом деле очень легко динамически управлять информацией заголовка страницы. Просто сначала посмотрите демонстрацию: http://www.lvjiyong.com/demo/aspnet/setheader/.
Демонстрация очень проста. Вы можете скачать исходный код и рассмотреть его поближе. В основном
используются аннотации.
Этот метод помещается в BasePage. В следующий раз, когда вы разрешите WebForm наследовать класс BasePage, вы можете вызвать его Use Literal, чтобы установить информацию о заголовке. Используйте PlaceHolder для загрузки таблицы стилей и скрипта.
Литерал позволяет нам напрямую задавать текстовую информацию. При его использовании мы сначала позволяем программе узнать, существует ли указанный элемент управления Литерал, и если да, устанавливаем Текст.
/**//// <сводка>
/// Установка информации о головке
/// </сводка>
/// <param name="_name">Управление</param>
/// <param name="_control">Текст</param>
частный void setHeader (строка _control, строка _text)
{
Литерал obj = this.FindControl(_control) как литерал;
если (объект! = ноль)
{
объект.Текст = _текст;
}
}
Например, если мы установим <asp:Literal id="PageTitle" runat="server" /> в области заголовка, мы можем установить заголовок следующим образом. Здесь мы сначала подготавливаем метод.
/**//// <сводка>
///Установим заголовок веб-страницы
/// </сводка>
/// <param name="_title">Заголовок веб-страницы</param>
защищенная пустота SetTitle (строка _title)
{
setHeader("PageTitle","<title>" + _title + "</title>");
В WebFrom мы можем установить заголовок следующим образом
this.SetTitle("Блог Лу");
Методы для описания, ключевых слов и т. д. те же, но нужно ставить Meta. Не буду в это углубляться.
На этот раз я расскажу о загрузке js и css. мы используем элемент управления PlaceHolder. Зачем использовать его вместо Literal? Подумайте сами.
PlaceHolder обычно занимает только позицию, что позволяет нам динамически загружать элементы управления. Это делает загрузку js и css намного более удобной. Во-первых, мы также находим указанный элемент управления PlaceHolder.
/**//// <сводка>
/// Найдите контейнер PlaceHolder для LoadHeader
/// </сводка>
/// <возвращается></возвращается>
частный контроль findHeader()
{
вернуть this.FindControl("LoadHeader");
}Затем добавьте элемент управления динамически
/**//// <сводка>
/// Загрузите элемент управления в элемент управления PlaceHolder
/// </сводка>
/// <param name="_obj"></param>
защищенная пустота LoadPlaceHolder (HtmlGenericControl _obj)
{
objHeader = findHeader() as Control
//Загрузить файл сценария
;
если (objHeader! = ноль)
{
objHeader.Controls.Add
(_obj);
}Чтобы загрузить CSS или JS, мы сначала используем HtmlGenericControl для создания дочернего элемента управления, а затем добавляем его в элемент управления PlaceHolder.
/**//// <сводка>
/// Загрузим указанный файл таблицы стилей
/// </сводка>
/// <param name="_cssPath">Адрес файла таблицы стилей</param>
защищенная пустота LoadCss (строка _cssPath)
{
HtmlGenericControl objCss = новый HtmlGenericControl («ссылка»);
objCss.Attributes["rel"] = "таблица стилей";
objCss.Attributes["тип"] = "текст/css";
objCss.Attributes["href"] = _cssPath;
objCss.Attributes["media"] = "экран";
this.LoadPlaceHolder(objCss);
}
Затем, когда мы хотим загрузить таблицу стилей в WebForm, нам просто нужно использовать
this.LoadCss("Адрес таблицы стилей"); Это то же самое, что и загрузка js. Я не буду об этом упоминать.
Функция, которую я написал в исходном коде, немного лучше, чем упомянутая здесь. Вы можете скачать ее и посмотреть. сам.