如何在asp.net mvc中从PartialView更改PageTitle
我想从部分视图更改页面标题。但显示以下错误
使用页面的标题属性需要页面上的标题控件。 (例如 )。
我的母版页标题部分位于此处
<head runat="server">
<title>
<asp:ContentPlaceHolder ID="TitleContent" runat="server" />
</title>
</head>
我的默认页面位于此处
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
<%=ViewData["pagetitle"] %>
</asp:Content>
ViewData["pagetitle"]
返回当前页面标题,例如主页、关于、新闻列表、新闻详细信息。但我想更改当前新闻信息标题而不是 News Detail
字符串。 新闻详细信息
页面包含部分视图。部分视图知道显示哪些新闻。
请帮忙
I want to change Page title from partial view. But following error shown
Using the Title property of Page requires a header control on the page. (e.g. <head runat="server" />).
My master page head section is here
<head runat="server">
<title>
<asp:ContentPlaceHolder ID="TitleContent" runat="server" />
</title>
</head>
My Default page is here
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
<%=ViewData["pagetitle"] %>
</asp:Content>
ViewData["pagetitle"]
returns current page title for example Home, About, News List, News Detail. But i want to change current news information title instead of News Detail
string. News Detail
page contains partial view. Partial view know which news shown.
Please help
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不太确定您的文件结构如何,但如果您有一个实体文件夹,您可以在其中提取视图页面的信息,那么在 aspx 页面中您可以执行以下操作:
Not really sure how you have your files structured but if you have an entities folder in which you pull information from for your view page then in the aspx page you can do something like this:
由于标题是作为标题部分的一部分呈现的,因此部分视图没有简单的方法来直接设置页面标题。
但是您的控制器(获取要显示的新闻项目)将知道标题应该是什么,并且可以将“pagetitle”项目添加到 ViewData 集合中,然后您可以直接在主布局中或在特定于页面的布局中设置该项目内容区域正如您上面所做的那样。
提示:我建议创建一个名为 ViewDataKeys 的静态类,其中包含静态字符串属性(或公共 const 字段),用作 ViewData 集合的索引器。这有助于避免在使用多个来源的基于字符串的字典时出现重复、拼写错误和区分大小写的错误。
Because the title is rendered as part of the head section, there is no easy way for a partial view to set the page title directly.
But your controller (which fetches the news item to display) will know what the title should be, and can add the "pagetitle" item to the ViewData collection, which you can then set either in your master layout directly or in a page-specific content region as you are doing above.
Hint: I'd recommend creating a static class called ViewDataKeys with static string properties (or public const fields) used as indexers into the ViewData collection. This helps avoid duplicates, spelling mistakes and case-sensitivity errors in working with the string-based dictionary from multiple sources.