В рендере xslt я вызываю следующее
<xsl:value-of select="di:inject()"/>
Соответствующий класс извлекает объект текущей страницы и пытается изменить заголовок страницы
public class XslHelper : Sitecore.Xml.Xsl.XslHelper
{
public void inject()
{
Page page = HttpContext.Current.Handler as Page;
// page.GetType().FullName tells me that I have successfully got the reference
page.Header.Controls.Add(new HtmlLink { Href = "/style.css" });
}
}
Однако заголовок не обновляется? Почему это так и есть ли другой способ достичь того же результата?
РЕДАКТИРОВАТЬ: В итоге мы расширили шаблон XslRender и сохранили там зависимости, которые затем могут быть выбраны и добавлены в сеанс путем переопределения класса InsertRenderings в конвейере renderLayout. Затем к объекту сеанса можно получить доступ к Page_Load в макете, который может получить доступ к заголовку страницы.