Asp.net 如何将属性添加到标题标记
我正在使用webforms ASP.NET和母版页。我想在Asp.net 如何将属性添加到标题标记,asp.net,webforms,Asp.net,Webforms,我正在使用webforms ASP.NET和母版页。我想在标记中添加一个LANG属性。ASP.NET自动生成标题标记。我已经尝试添加我自己的带有ID和runat=“server”的标记,如下所示: <title id="titleBlock" runat="server"></title> 然而,ASP.NET完全删除了我的标记,并在没有my LANG属性的情况下加入了自己的标记。有没有办法做到这一点?非常感谢。之所以会出现这种情况,是因为HtmlTitle控件没有提供
标记中添加一个LANG属性。ASP.NET自动生成标题标记。我已经尝试添加我自己的带有ID和runat=“server”的标记,如下所示:
<title id="titleBlock" runat="server"></title>
然而,ASP.NET完全删除了我的
标记,并在没有my LANG属性的情况下加入了自己的标记。有没有办法做到这一点?非常感谢。之所以会出现这种情况,是因为HtmlTitle控件没有提供RenderAttributes实现。在这种情况下,您不能(轻松地)对控件进行子类化,但还有另一个选项。控制适配器的功能不仅限于网络控制,这个概念也适用于HTMLControl
将以下内容放入*.browser文件中,放在站点的App_Browsers目录下:
<browsers>
<browser refID="Default">
<controlAdapters>
<adapter
controlType="System.Web.UI.HtmlControls.HtmlTitle"
adapterType="HtmlTitleAdapter"
/>
</controlAdapters>
</browser>
</browsers>
请注意,HtmlTile的内部渲染实现有些不同:
protected internal override void Render(HtmlTextWriter writer)
{
writer.RenderBeginTag(HtmlTextWriterTag.Title);
if (this.HasControls() || base.HasRenderDelegate())
{
this.RenderChildren(writer);
}
else if (this._text != null)
{
writer.Write(this._text);
}
writer.RenderEndTag();
}
我不确定标题什么时候会有子元素,所以我不认为这是个问题
希望这有帮助
另一方面,使用jQuery在客户机上添加此属性要容易得多
<script type="text/javascript">
$(document).ready(function() {
$("title").attr("lang", "it");
});
</script>
$(文档).ready(函数(){
$(“title”).attr(“lang”,“it”);
});
您正在使用母版页吗?母版页/内容页是否覆盖了此内容?@Oded,是的,我正在使用母版页(我问题的第一句是这样说的)。内容页正在通过page.Title=“…”设置标题。我在问题中显示的代码(我在其中添加了自己的标题标签)直接在母版页codebehind中完成。它很有效——非常好的解决方案,谢谢。我知道使用jQuery很容易做到这一点,但我这么做的主要原因是为了搜索引擎,以便它们能够识别页面上几个元素(title标签和几个div)中使用的语言。搜索引擎不会运行JS,因此需要直接从服务器输出LANG属性。又是Thx。
protected internal override void Render(HtmlTextWriter writer)
{
writer.RenderBeginTag(HtmlTextWriterTag.Title);
if (this.HasControls() || base.HasRenderDelegate())
{
this.RenderChildren(writer);
}
else if (this._text != null)
{
writer.Write(this._text);
}
writer.RenderEndTag();
}
<script type="text/javascript">
$(document).ready(function() {
$("title").attr("lang", "it");
});
</script>