ASP.NET MVC中的一个页面中的不同标题,而不创建另一个母版页

时间:2010-01-10 16:57:15

标签: asp.net asp.net-mvc master-pages

在我的母版页中,我按如下方式定义页面标题:

<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /><%= "- MyWebSite". %></title>

然后在每个视图中我都有:

<asp:Content ID="Title" ContentPlaceHolderID="TitleContent" runat="server">
  Products
</asp:Content>

所以我总是以标题中的网站名称结束,例如“产品 - MyWebSite”。

但是对于一个且只有一个页面,主页,我只想要网站的名称,如“MyWebSite”。理想情况下,我希望每个没有定义标题的视图,我只显示网站的名称。问题是,我目前的代码最终以“ - MyWebSite”作为标题。

如何在没有大量重复的情况下如何做到这一点?绝对不会创建另一个模板。

2 个答案:

答案 0 :(得分:4)

您可以将- MyWebSite置于另一个ContentPlaceHolder内,并在主页(仅限)中对其进行Content控制。

在母版页中,您可以输入类似

的内容
<title>
  <asp:ContentPlaceHolder ID="TitleContent" runat="server" />
  <asp:ContentPlaceHolder ID="TitleSuffixContent" runat="server">
    - MyWebSite
  </asp:ContentPlaceHolder>
</title>

,而您的产品页面仍然是

<asp:Content ID="Title" ContentPlaceHolderID="TitleContent" runat="server">
  Products
</asp:Content>

您的主页将是:

<asp:Content ID="Title" ContentPlaceHolderID="TitleContent" runat="server">
  MyWebSite
</asp:Content>
<asp:Content ID="TitleSuffix" ContentPlaceHolderID="TitleSuffixContent" runat="server">
</asp:Content>

甚至:

<asp:Content ID="Title" ContentPlaceHolderID="TitleContent" runat="server">
  MyWebSite
</asp:Content>
<asp:Content ID="TitleSuffix" ContentPlaceHolderID="TitleSuffixContent" runat="server">
  - Your place on the interwebs
</asp:Content>

答案 1 :(得分:0)

您需要执行此操作只需删除头标记中的runat="server"属性