Могу ли я изменить раздел <head /> страницы в .NET из пользовательского элемента управления без runat = "server"? - PullRequest
5 голосов
/ 04 октября 2011

У меня есть страница, на которой не установлен runat = "server" в разделе <head/>. У меня нет доступа для изменения любого кода на странице.

Эта страница содержит пользовательский элемент управления, к которому у меня есть доступ. Можно ли добавить тег <meta/> в раздел заголовка страницы из пользовательского элемента управления? Он должен быть на стороне сервера, чтобы решение javascript не работало.

Ответы [ 2 ]

2 голосов
/ 04 октября 2011

Один из вариантов - создать фильтр ответов, а затем изменить выходные данные перед отправкой пользователю.

http://www.4guysfromrolla.com/articles/120308-1.aspx

2 голосов
/ 04 октября 2011

Вы можете проанализировать текст в

(this.Page.Controls[0] as LiteralControl).Text

, чтобы увидеть, где начинается строка <head>, и вставить туда любой нужный вам текст, вставляя свой собственный код в заголовок страницы, не помечая егоrunat="server".

Обратите внимание, что это довольно хакерский способ получить код там, где его, скорее всего, не должно быть (в противном случае элемент <head> был бы помечен как runat="server"так что вы можете получить к нему доступ нормально).Это также сломается, если позднее элемент head будет изменен на элемент управления ASP.NET.Возможно, он не будет работать с мастер-страницами, вам придется пройтись по дереву элементов управления, чтобы найти самый верхний буквальный элемент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...