ASP.NET runat = server从头标记中删除回车符

时间:2010-07-02 20:13:03

标签: asp.net html

我是.net的新手,我注意到在查看由.net应用程序生成的HTML源代码时,如果头标记上有runat="server"属性,则会从head标记中删除回车符。

我删除runat="server"并返回...返回。

当你的标题中有一些javascript和css文件时,这看起来很糟糕,因为它最终会使head标签的整个内容变成一大行。

只是想知道是否有办法控制这个或告诉.net通过配置不会破坏输出?

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以创建ControlAdapter。 将文件Head.Browser添加到App_Browsers目录,其中包含内容:

<browsers>
  <browser refID="Default">
    <controlAdapters>
      <adapter controlType="System.Web.UI.HtmlControls.HtmlHead"
               adapterType="MyNamespace.MyHeadAdapter, MyAssembly" />
    </controlAdapters>
  </browser>
</browsers>

适配器来源:

    public class MyHeadAdapter: ControlAdapter
    {
        protected override void Render(HtmlTextWriter writer)
        {
            // base.Render(writer);
            // do the fix here
        }
    }

PS:我没有测试过这段代码,但是使用了几乎相同的方法来重写表单的动作attriute与从HtmlTextWriter派生的自定义类。

答案 1 :(得分:0)

我在试图解决这个问题时遇到了这篇文章。

当设置runat = server属性时,我注意到了2个问题... 1)删除了元标记之间的回车,因此所有元标记在一行上聚集在一起 2)标题标签非常混乱(DVD完美描述)

我遇到的问题是我需要动态设置页面标题,元描述和元关键字。 要动态设置页面标题,需要设置runat = server属性。

我的解决方案;

  1. 从头标记
  2. 中删除runat = server属性
  3. 将runat = server attirbute添加到标题标记
  4. 在代码后面,引用title标签并设置.InnerText属性
  5. 希望这有帮助。