Я работаю в Управлении Интернет-пользователя (.ascx), который будет включенным в обычную веб-форму (.aspx), но я должен быть в состоянии динамично ввести код в заголовок документа от Пользовательского элемента управления. В мои дни Coldfusion <cfhtmlhead> добился бы цели. Существует ли эквивалент этого в ASP.NET или подобном взломе?
Для добавления HTML-разметки вы можете сделать следующее:
В вашем коде UserControl вы можете получить доступ к Page.Header, который сам по себе является элементом управления. В этот элемент управления вы можете добавить новые элементы управления:
HtmlGenericControl newControl = new HtmlGenericControl("someTag");
newControl.Attributes["someAttr"] = "some value";
Page.Header.Controls.Add(newControl);
Для добавления разметки сценария вам вообще не нужен доступ к заголовку тэга, так как ASP.NET имеет вспомогательные методы на ClientScriptManager, которые делают работу за вас:
Вот примеры кода, который вы также можете поместить в код вашего элемента управления:
// Register some inline script:
Page.ClientScript.RegisterClientScriptBlock(GetType(), "myAlertScript", "alert('hello!')", true);
// Register a script reference:
Page.ClientScript.RegisterClientScriptInclude(GetType(), "myLibraryScript", "~/Scripts/MyScriptLibrary.js");
this.Page.Header.Controls.Add
Делая это, вы добавляете элементы управления в головную секцию. Вы можете добавить любой тип управления. Если Вы чувствуете, что Вам нужно добавить простой текст (или Вы хотите записать теги вручную), то обратите внимание на класс LiteralControl.
Здесь есть некоторые инструкции по использованию кода C # для изменения заголовка страницы . Он должен нормально работать с любым серверным кодом, который выполняется до завершения загрузки страницы.
Простой пример, например
HtmlHead head = Page.Header;
HtmlTitle title = new HtmlTitle();
title.Text = "Test Page";
head.Controls.Add(title);
Ссылка HTMLHead находится в пространстве имен
System.Web.UI.HtmlControls
Переопределите метод Load () настраиваемого элемента управления, чтобы добавить необходимые элементы управления или ссылки в заголовок страницы, пока родительская страница .aspx загружается на стороне сервера.