我继承了(没有双关语)一个旧的ASP.NET 1.1项目,现在是.NET 3.5。它设计有继承自PageBase的基类。所有后续的aspx页面都继承自此自定义页面库。它目前的工作原理是在LiteralControls中为标题和导航栏生成一堆html文本并将其放入HtmlGenericControl(在本例中称为“page”),然后使用this.Controls.Add(page);
将其显示在页面上工作,但以下输出除外:
<span>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
...
</html>
</span>
这些跨度显然不应该存在,但它们来自HtmlGenericControl,默认为spanName的tagName。这在IE中引起了一些关于页面中心控件的奇怪行为。
基本上我知道我应该使用这些类型的主页,但是我没有时间将其全部切换掉,而且我还不是ASP.NET专家,我知道如何解决这个问题问题。是否有另一种方法可以直接将文本文本发送到HTML输出而不将其包装在控件中?显然我需要DocType成为页面上的第一件事;没有包装它。谢谢!
答案 0 :(得分:1)
可以使用LiteralControl
代替HtmlGenericControl
吗?我不认为那些用周围标签装饰输出。
答案 1 :(得分:0)
最糟糕的情况是,使用HttpModule来改变输出并摆脱跨度。