bh2*_*213 16 asp.net asp.net-mvc master-pages
在使用母版页时,为视图设置html标题(头部)的首选方法是什么?
一种方法是在.aspx文件中使用Page.Title,但这需要在母版页中混淆HTML代码.所以,我们假设没有服务器端控件,只有纯html.有更好的想法吗?
更新:我想在视图中设置标题而不是在控制器或模型中.
And*_*tos 32
在我们的母版页中,我们创建了一个"init"ContentPlaceHolder和一个"标题"ContentPlaceHolder.如果有人想以编程方式设置Page.Title,他们可以在初始占位符的CSharp中设置它,或者他们可以使用标记覆盖"title"占位符.
母版页
<asp:ContentPlaceHolder id="init" runat="server"></asp:ContentPlaceHolder>
<head runat="server">
<asp:ContentPlaceHolder ID="title" runat="server">
<title><%=this.Page.Title%></title>
</asp:ContentPlaceHolder>
</head>
Run Code Online (Sandbox Code Playgroud)
查看页面 可以覆盖整个"标题"内容占位符:
<asp:Content ID="Content1" ContentPlaceHolderID="title" runat="server">
<title>Home Page</title>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
或以编程方式设置页面标题.
<asp:Content ID="Content1" ContentPlaceHolderID="init" runat="server">
<%this.Title = "Home Page";%>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
确保从顶部的Page指令中删除Title ="",否则您将无法以编程方式更改Page.Title.
Hug*_*are 11
我看到很多人都使用这个<%= ViewData["Title"] %>
选项.
我想你也可以插入一个ContentPlaceHolder
名为Title的标题,然后在你的页面上使用它,但在我见过的所有MVC例子中,它们都使用了第一个选项.
bh2*_*213 -4
我们最终得到
<head runat=server visible=false>
Run Code Online (Sandbox Code Playgroud)
在母版页中。
这样我们就可以从Page.Title中读取(Page.Title要求head元素存在,否则会抛出异常,用反射器检查)。然后我们使用我们自己的head元素——MVC方式。
归档时间: |
|
查看次数: |
25634 次 |
最近记录: |