.net 设置页面标题不需要';行不通

.net 设置页面标题不需要';行不通,.net,asp.net,page-title,.net,Asp.net,Page Title,我遇到了一个奇怪的问题,设置ASP.NET页面的Title属性在代码级别没有任何效果。它也不会抛出异常。我的类是页面类的派生类,但我没有覆盖任何关于标题的内容 在代码中,我有一行: Title = "About"; 调试时,我在那一行,我将光标按常规放在标题上,它会显示一个空字符串,这是预期的,我从那一行往下走,预期(显然)Title会有值“About”,但当我悬停时,我仍然会得到一个空字符串。属性设置不起作用。是的,它在输出页面中也是空的。嗯,我是不是遗漏了什么?这个怎么样(有点奇怪,但仍然

我遇到了一个奇怪的问题,设置ASP.NET页面的
Title
属性在代码级别没有任何效果。它也不会抛出异常。我的类是
页面
类的派生类,但我没有覆盖任何关于标题的内容

在代码中,我有一行:

Title = "About";
调试时,我在那一行,我将光标按常规放在标题上,它会显示一个空字符串,这是预期的,我从那一行往下走,预期(显然)
Title
会有值
“About”
,但当我悬停时,我仍然会得到一个空字符串。属性设置不起作用。是的,它在输出页面中也是空的。嗯,我是不是遗漏了什么?

这个怎么样(有点奇怪,但仍然:):

步骤1:将ContentPlaceHolder添加到母版页的标题标签中

...
<title>
    <asp:ContentPlaceHolder ID="TitleContentPlaceHolder" runat="server"></asp:ContentPlaceHolder>
</title>
...

我对产权财产也有类似的问题。我的问题又回到了缺少Title属性的
指令。确保已将Title属性添加到ASPX文件的Page指令中,如下所示:

<%@ Page Language="C#" Title="Default Title" %>

尝试在页面数据绑定后设置标题:

public override void DataBind()
{
    base.DataBind(true);
    Title = "Ballout";
}
我也遇到了类似的问题(在code behind中设置
Me.Title
属性不会更改呈现页面的实际标题)

在我从
指令中完全删除Title属性后,一切都开始按预期工作

我在母版页
中有这个:


(这一点似乎不是绝对必要的,因为ASP.NET无论如何都会向
添加
元素……但是如果没有它,Visual Studio HTML验证程序会抱怨“元素'title'出现的次数太少”,所以我将其保留在那里。)

  • VisualStudio2010专业版
  • .NET4.0
  • IIS 7.0

如果要从C#code设置标题,请确保未在aspx页面中设置标题。(即使是空白标题也会覆盖C代码中的标题)

以下代码将用空字符串覆盖C#代码中设置的标题:

<%@ Page Language="C#" Title="" ... %>

我正在为我的页面切换到新的母版页,我的标题停止工作

我以前的工作母版页上有这个

<head runat="server">
<head>

我新的失败主页上有这样一个

<head runat="server">
<head>


因此,只需确保标记中有runat=“server”就可以了。

这只适用于PreRender

protected void Page_PreRender(object sender, EventArgs e)
    {
        Page.Title = "Some title";

    }
具有空值。
如果你忘了它,你所要做的就是使用

protected void Page_Load(object sender, EventArgs e)
{
    Title = "My tilte";


最重要的答案都是对的。您可以从
中删除标题。您是将母版页中的标题设置为空白还是将实际页面中的标题设置为空白?尝试在页面加载事件后设置标题。我在一个内容页面中,我尝试覆盖呈现方法并尝试在那里设置,但没有更改,它似乎已设置,但没有。HTML中有什么内容?有标签吗?您的内容页是否使用母版页?是的,我的页面指令与其他页面一样位于顶部,并且继承自我的母版页。我没有额外的title标签,我只是在母版页
上有title指令和常规标题,一些文本
但一些文本也没有出现在代码中…master.page.title不会起作用吗?这应该会起作用,我已经找到了类似的解决方法,但我想知道为什么简单的属性分配(或检索)会起作用不起作用。如果您将
而不是
asp:Literal
放入
asp:Content
标记中,您甚至可以省略步骤3。它就在那里。所有标题标记和属性都位于正确的位置。缺少标题属性不会导致问题。我测试过了。但是,就用户的情况而言(真的很奇怪)——一切皆有可能:)@can poyrazoğlu:你提到了“从我的主页继承”。实际上,内容页并不从母版页继承。它使用它,但不继承自我发现页面声明中的
Title=“Default Title”
属性导致了这个问题。我删除了该属性,然后可以从后面的代码中设置页面标题。当页面指令中的标题为黑色(title=“”)时,我也遇到了同样的问题。完全删除title属性或将其设置为类似“default”的值允许我在代码中对其进行更改。简单的修复-应该是正确的答案。不确定这是什么时候改变的,但在VS2010和.NET 4.0中使用时没有任何改变“开箱即用”,但在VS2013和.NET 4.5X中使用失败这应该是正确的答案,而不是当前标记为答案的“黑客”…哇-我第一次看到两个完全相反的答案(见Steven V),它们都被选为正确。。呵呵。。啊!?!谢谢看来我参加这个聚会晚了5年,但我仍然在使用网络表单!谢谢你今天早上帮我停止把头撞在砖墙上!这是以编程方式设置
Page.Title
的关键点。不错,我也一样。更改了设计并以某种方式删除了runat=server和title停止工作。
<head runat="server">
<head>
protected void Page_PreRender(object sender, EventArgs e)
    {
        Page.Title = "Some title";

    }
<%@ Page meta:resourcekey="PageResource1" culture="auto"
PageResource1.Title
protected void Page_Load(object sender, EventArgs e)
{
    Title = "My tilte";