程序开发 > C# > 正文

.net(C#)提示错误使用 Page 的 Title 属性要求页上有标头控件

亮术网 2020-08-22 本网原创

为便于修改网页的标题和关键词,通常把它们用代码动态显示,有的时候设置不当会抛出异常,这种错误比较少见,不认真看一下还真不知道是怎么回事,具体错误提示如下:

使用 Page 的 Title 属性要求页上有标头控件。(例如 <head runat="server" />)。

说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.InvalidOperationException: 使用 Page 的 Title 属性要求页上有标头控件。(例如 <head runat="server" />)。

源错误:

行 44:  KeyWords.Text = "<meta name=\"Keywords\" content=\""+ PageTitle +"\" />";
  行 46:  string description ="<meta name=\"Description\" content=\"" + PageDescription + "\" />";

错误提示中有这么一句话:使用 Page 的 Title 属性要求页上有标头控件。单从这句话来看意思不怎么明显,如果不看后面的“例如 <head runat="server" />”还真让人摸不着头脑,有这句话才知道原来是网页的头部上少了 runat="server" 标示控件在服务器运行的语句,知道原因后解决办法也就出来了。

 

解决办法:

只需在网页的头部加上 runat="server",问题就解决了,即:<head runat="server">

默认情况下,<head>标签是有 runat="server" 的,为了不让网页标题换行,所以把 runat="server" 去掉了。如果仍然不想让网页标题换行,必须得把 runat="server" 去掉,但不能用控件输出网页标题和描述了,可以在后台定义保护成员字符变量,即:

protected string KeyWord;
   protected string Description;

给它们赋值后在前台输出就可以了。