2012-01-24 202 views
1

我試圖在嵌套的WebForms母版頁中,從我的Razor佈局頁面(_layout.cshtml)或剃刀內的其他任何位置向Page.Title傳遞一個值。將標題從Razor頁面傳遞到WebForms主頁頁面

我已經嘗試過使用這個,Master,Parent等的Page.Title的各種組合。我試圖從Razor內部訪問ViewState。我試圖從WebForms主頁面使用ViewBag。到目前爲止,最成功的嘗試是使用Session變量,但不幸的是,在下一頁加載之前不會更新標題(更新後的標題始終爲前一頁而不是當前頁設置)。

以這種方式設置標題的原因是雙重的。第一部分是我無法更改根WebForms主頁,其中包含標籤。第二個是使用JavaScript/jQuery改變它可能會導致SEO(搜索引擎優化)問題。如果有解決SEO問題的方法,我可以通過使用jQuery來避免所有這些。

我通常使用下面的文章,以實現內部的WebForms嵌入剃刀: http://www.eworldui.net/blog/post/2011/01/07/Using-Razor-Pages-with-WebForms-Master-Pages.aspx

我發現我可以更改標題的唯一方法是通過從代碼隱藏設置Page.Title 「嵌套的WebForms主頁」。不幸的是,我似乎沒有從這裏進入剃刀。我已經從Page_Load和Page_PreRender嘗試過。我試圖爲PreRenderComplete實現一個方法,但沒有取得任何成功。是否有可能從ASP.Net頁面生命週期的不同點成功完成這項工作?

我的頁面層次結構如下所示:

根的WebForms母版頁(不修改能力,有標籤)

嵌套的WebForms母版頁(W /代碼隱藏)

MVC碩士頁(代碼隱藏)

ASPX頁面(渲染剃刀)

MVC佈局

MVC查看

任何想法如何從Razor獲得標題到嵌套的WebForms主頁的代碼隱藏?有沒有更好,更簡單的方法來做到這一點,我忽略了?

回答

0

我能夠使用Session變量將標題從Controller成功傳遞到嵌套的WebForms主頁。然後,我可以在SaveStateComplete後從嵌套的WebForms主頁面成功更改標題。

會話似乎是唯一覆蓋的數據容器。

相關問題