asp.net-mvc - 如何使用 ASP.NET MVC 2 和 3 在 Site.Master 页面中设置标题的全局文本?

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

我使用 ASP.NET MVC 2 和 3 与 aspx View 而不是 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 <%: System.Web.Configuration.WebConfigurationManager.AppSettings["SiteTile"] %>"

后来我在这里找到了可以解决这个问题的方法:CodeExpressionBuilder

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

注意:

  1. 我不想在除 Site.Master 页面之外的每个页面中设置 MasterTitle 的值,这是一种愚蠢的方法。
  2. 我不想在 Controller 或 Action 或 Model 中设置 MasterTitle 的值,这是不对的。
  3. 我不想通过 ViewData 设置 MasterTitle 的值。
  4. 我不想使用 CodeExpressionBuilder .
  5. 我不使用 Razor View。

感谢您的帮助。

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

最佳答案

我遇到了类似的问题,这是我必须使用的:

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

关于asp.net-mvc - 如何使用 ASP.NET MVC 2 和 3 在 Site.Master 页面中设置标题的全局文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6291131/

相关文章:

javascript - 如何在我的 MVC 站点中制作 ExtJs DatePicker?

javascript - 如何向 GridView 添加复选框?

c# - 在C#中将基类转换为子类

c# - ASP.NET 母版页中的 PreRender 未触发

ASP.NET 从用户控件 (ASCX) 调用 (ASPX) 中的方法?

java - 如何以编程方式获取 contentPlaceHolder 的代码

javascript - 从 HttpPost Asp.Net MVC 方法返回用于保存的文件

asp.net-mvc - knockout JS + 发送到 MVC 3

Razor View Engine 子页面中的 Javascript Intellisense

asp.net-mvc-3 - 使用来自服务器的默认数据初始化 View 模型