我想做的事情似乎很简单。我想在视图上的@Page指令中指定页面标题,如下所示:
<%@ Page Title="About This Site" ... %>
然后,我想将该页面标题放入ViewData中,以便它可以在母版页中使用,如:
<head>
<title>The Awesome Site | <%=ViewData["Title"]%></title>
并且在视图中也是如此:
<h1><%=ViewData["Title"]%></h1>
我已经为所有页面控制器方法继承了一个自定义控制器。所以我希望在控制器中可以做一些事情来将Page.Title属性转移到ViewData中(或者我可能会使用ViewBag)。我似乎无法在Controller中找到任何引用页面的路径。
这可能吗?是否有一种我可能想要考虑的不同方法。
答案 0 :(得分:1)
请参阅此处的“一般错误”帖子以获得干净的方法。
Passing data to Master Page in ASP.NET MVC
您不应该从控制器的“页面”引用任何内容。两者完全分开设计。您需要打包数据,然后将其发送到视图。 另一种方式(更像你要求的)是你使用的 @ {
ViewBag.Title =“我的视图标题”; } 然后母版页在任何您想要的地方使用该值。
答案 1 :(得分:0)
我想你可能正在寻找Html.Title()
。
您可以将此内容写入页面的任何部分:
<title><%: Html.Title() %></title>
这将从您的视图中拾取标题,并根据需要将其插入母版页。