Передача заголовка на главную страницу WebForms со страниц Razor - PullRequest
1 голос
/ 25 января 2012

Я пытаюсь передать значение в Page.Title на вложенной главной странице веб-форм, со страницы макета Razor (_layout.cshtml) или в другом месте внутри бритвы.

Я пытался использоватьразличные комбинации Page.Title с этим, Master, Parent и так далее.Я пытался получить доступ к ViewState изнутри Razor.Я пытался использовать ViewBag с главной страницы WebForms.До сих пор наиболее успешной попыткой было использование переменной Session, которая, к сожалению, не обновляет заголовок до следующей загрузки страницы (обновленный заголовок всегда устанавливается для предыдущей страницы вместо текущей).

Причина установки Заголовка таким образом двояка.Первая часть заключается в том, что я не могу изменить корневую мастер-страницу WebForms с тегом.Во-вторых, изменение его с помощью JavaScript / jQuery может привести к проблемам с SEO (поисковой оптимизацией).Если есть способ обойти проблему SEO, я, вероятно, могу избежать всего этого, используя jQuery.

Обычно я использую следующую статью для встраивания Razor в WebForms: http://www.eworldui.net/blog/post/2011/01/07/Using-Razor-Pages-with-WebForms-Master-Pages.aspx

Единственный способ, которым я нашел, что я могу изменить заголовок, это установить Page.Title из кода «вложенной главной страницы WebForms».К сожалению, у меня нет доступа к Razor отсюда.Я пробовал это от Page_Load и Page_PreRender.Я пытался реализовать метод для PreRenderComplete, но безуспешно.Возможно ли, что я мог бы сделать это успешно с другой точки в жизненном цикле страницы ASP.Net?

Моя иерархия страниц выглядит следующим образом:

корневая главная страница WebForms (без возможности изменения, имеет тег)

вложенная мастер-страница WebForms (без кода)

мастер-страница MVC (без кода)

ASPX-страница (отображает Razor)

MVC Layout

MVC View

Есть идеи, как получить заголовок от Razor для кода вложенной главной страницы WebForms?Есть ли лучший, более простой способ сделать это, что я упустил из виду?

1 Ответ

0 голосов
/ 25 января 2012

Мне удалось успешно передать заголовок из контроллера на вложенную мастер-страницу WebForms с помощью переменной Session. После этого я смог успешно изменить заголовок из вложенной главной страницы веб-форм после SaveStateComplete.

Сеанс, по-видимому, является единственным контейнером с избыточной архивацией данных.

...