2011-05-12 17 views
1

我想要做的事似乎很簡單。我想在我的@Page指令指定頁面標題上來看,像這樣:.Net MVC3從控制器獲取對頁面的引用

<%@ Page Title="About This Site" ... %> 

然後,我想獲取頁面標題到ViewData的,所以它可以在使用母版頁,如:

<head> 
    <title>The Awesome Site | <%=ViewData["Title"]%></title> 

以及在查看自己喜歡的:

<h1><%=ViewData["Title"]%></h1> 

我已經繼承了定製控制器的所有頁面控制器方法。所以我希望我可以在控制器中將Page.Title屬性轉移到ViewData中(或者我將使用ViewBag)。我似乎無法找到任何路線來引用控制器內的頁面。

這可能嗎?我可能想要考慮一種不同的方法。

回答

1

查看「通用錯誤」發佈這個乾淨的方式來做到這一點。

Passing data to Master Page in ASP.NET MVC

你不應該參考從「頁」從控制器東西。這兩個設計完全分離。您需要打包數據,然後將其發送到視圖。 另一種方式(更像是你要求的)是你使用 @ {

ViewBag.Title =「my view title」; } 然後主頁使用該值,無論你想要它。

+0

使用剃刀語法,然後@ {ViewBag.Title =」whatever「;}在您的視圖的頂部 - 更小,更容易更改 – 2011-05-12 15:04:36

+0

@OneCleverMonkey只是好奇,爲什麼不接受? – 2013-05-16 07:26:16

0

我想你可能正在尋找Html.Title()

你可以寫此頁面的任何部分:

<title><%: Html.Title() %></title> 

這將皮卡從您的視圖稱號,並根據需要將其插入到你的母版頁。

+1

沒有這個運氣。我得到了''System.Web.Mvc.HtmlHelper '不包含'標題'的定義,並且沒有找到接受'System.Web.Mvc.HtmlHelper '類型的第一個參數的擴展方法'Title' )「 – OneCleverMonkey 2011-05-12 14:13:24