如何使用ASP.NET MVC 2&amp ;;在Site.Master页面中设置标题的全局文本。 3?

时间:2011-06-09 10:05:59

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

我正在使用ASP.NET MVC 2& 3使用aspx View not Razor View,我的问题是:

如何在Site.Master页面中设置标题?我希望每个使用Site.Master页面的页面都可以添加一个主标题,按照页面标题显示如下:“Index -MasterTitle”; “关于-MasterTitle”。

我在Site.Master页面尝试过,但它不起作用:

<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" />
    -MasterTitle
</title>

所以我尝试使用asp:Literal服务器控件:

<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" />
    <asp:Literal  runat="server">-MasterTiltle</asp:Literal>
</title>

或者:

<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" />
    <asp:Literal  runat="server" Text="-MasterTiltle"></asp:Literal>
</title>

很好,它解决了问题,但后来我想从web.config加载MasterTitle的值,我试试了:

<asp:ContentPlaceHolder ID="TitleContent" runat="server" />
    <asp:Literal runat="server">
        <%: System.Web.Configuration.WebConfigurationManager.AppSettings["SiteTile"] %>
    </asp:Literal>
</asp:Literal>

编译器给我一个服务器控件不能包含子控件,所以我尝试了另一个:

<title>
    <asp:ContentPlaceHolder ID="TitleContent" runat="server" />
        <asp:Literal ID="ltlTitleBack" runat="server" Text='<%: System.Web.Configuration.WebConfigurationManager.AppSettings["SiteTile"] %>' > 
    </asp:Literal>
</title>

它的编译器确定但不是我想要的答案因为它显示:“ pagetilte&lt;%:System.Web.Configuration.WebConfigurationManager.AppSettings [”SiteTile“]%&gt;

后来我找到了一种方法可以解决这个问题:CodeExpressionBuilder

但我认为这不是一个正确的解决方案因为我应该设置太多与ASP MVC无关的东西。有没有更好的解决方案可以解决这个问题?

注意:

  1. 我不想在每个页面中设置MasterTitle的值而不是Site.Master页面,这是一种愚蠢的方式。
  2. 我不想在Controller或Action或Model中设置MasterTitle的值,这是不对的。
  3. 我不希望通过ViewData设置MasterTitle的值。
  4. 我不想使用CodeExpressionBuilder
  5. 我不使用Razor View。
  6. 感谢您的帮助。

    编辑:其实我想要像web.config这样的东西,所以我可以在服务器运行时更​​改MasterTitle的值。 :)

2 个答案:

答案 0 :(得分:4)

我有类似的问题,这是我必须使用的:

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

答案 1 :(得分:1)

您应该将资源文件用于此类文本...

http://msdn.microsoft.com/en-us/library/ms227427.aspx

它不仅可以让您将文本设置在一个漂亮的中心位置,而且它是为了这个目的而设计的 - 它还可以让您以后更轻松地创建您网站的区域语言版本!