.Net MVC3从控制器获取对页面的引用

时间:2011-05-12 04:10:59

标签: asp.net-mvc-3

我想做的事情似乎很简单。我想在视图上的@Page指令中指定页面标题,如下所示:

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

然后,我想将该页面标题放入ViewData中,以便它可以在母版页中使用,如:

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

并且在视图中也是如此:

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

我已经为所有页面控制器方法继承了一个自定义控制器。所以我希望在控制器中可以做一些事情来将Page.Title属性转移到ViewData中(或者我可能会使用ViewBag)。我似乎无法在Controller中找到任何引用页面的路径。

这可能吗?是否有一种我可能想要考虑的不同方法。

2 个答案:

答案 0 :(得分:1)

请参阅此处的“一般错误”帖子以获得干净的方法。

Passing data to Master Page in ASP.NET MVC

您不应该从控制器的“页面”引用任何内容。两者完全分开设计。您需要打包数据,然后将其发送到视图。 另一种方式(更像你要求的)是你使用的 @ {

ViewBag.Title =“我的视图标题”; } 然后母版页在任何您想要的地方使用该值。

答案 1 :(得分:0)

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

您可以将此内容写入页面的任何部分:

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

这将从您的视图中拾取标题,并根据需要将其插入母版页。