【问题标题】:ASP.NET Set Page Title from Code BehindASP.NET 从后面的代码中设置页面标题
【发布时间】:2014-01-16 15:49:41
【问题描述】:

我正在使用 ASP.NET C# 创建数据驱动页面,并希望使用后面的代码动态设置页面标题

<%@ Page Title="" Language="C#" MasterPageFile="~/FLMaster.master" AutoEventWireup="true" CodeFile="legal-expenses-insurance-news-item.aspx.cs" Inherits="legal_expenses_insurance_news_legal_expenses_insurance_news_item" %>

我尝试在页面下方使用单独的标题标签,但这也不起作用。任何人都可以建议如何做到这一点。

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:
    using System;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace MyApplication
    {
        public partial class _Default : Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                this.Title = "Title of my page";
            }
        }
    }
    

    您可以从 aspx.cs(代码隐藏文件)中修改上述页面标题。

    如果您想直接在 .aspx 文件中执行此操作,请尝试以下操作:

    <% this.Title = "Some Title" %>
    

    如果您在 @Page 指令中正确设置了 Language = "C#",这将有效,我看到您这样做了。

    Page class reference from MSDN

    【讨论】:

      【解决方案2】:

      Page 有一个Title property

      protected void Page_Load(object sender, EventArgs e)
      {
          this.Title = "Title";
      }
      

      【讨论】:

      • 使用 Page 的 Title 属性需要在页面上有一个 header 控件。 (例如 head runat="server" / )。
      【解决方案3】:

      您应该从 aspx 页面中删除 Title=""。它将覆盖您的代码隐藏中设置的标题

      <%@ Page Language="C#" MasterPageFile="~/FLMaster.master" AutoEventWireup="true" CodeFile="legal-expenses-insurance-news-item.aspx.cs" Inherits="legal_expenses_insurance_news_legal_expenses_insurance_news_item" %>
      
      protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { this.Title = "Title"; } }

      【讨论】:

        【解决方案4】:

        我知道这是一个旧线程,但我发现 Page.Title 不能总是被覆盖,但 Page.Header.Title 可以(大部分)......所以我的主代码隐藏动态标题标签的解决方案是:

            if (Page.Header != null)
            {
                if (Page.Header.Title == null || !Page.Header.Title.Contains("COMPANYNAME"))
                {
                    var otitle = Page.Header.Title;
                    if (otitle == null || otitle.Length==0) {
                        var textinfo = System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo;
                        otitle = textinfo.ToTitleCase(this.Parent.GetType().Name.Replace("_"," ").Replace("aspx",""));
                    }
                    Page.Header.Title = "COMPANYNAME" + " - " + otitle;
                }
                Page.Header.Title = Page.Header.Title.Replace("COMPANYNAME", Auth.getSetting("companyName"));
            }
        

        【讨论】:

          猜你喜欢
          • 2011-01-07
          • 2016-07-06
          • 2011-01-18
          • 2011-04-16
          • 1970-01-01
          • 1970-01-01
          • 2011-12-31
          • 2010-09-10
          • 2015-04-28
          相关资源
          最近更新 更多