如何检测ASP.NET中的DOCTYPE(Transitional或Strict)服务器端?

时间:2010-07-14 15:05:53

标签: c# asp.net doctype xhtml-1.0-strict xhtml-transitional

我想知道是否有办法从服务器端检测页面被指定为哪个DOCTYPE。我在自定义WebControl中有一些HTML和CSS,根据页面的DOCTYPE呈现不同的呈现方式。我可以查看Page属性或Response属性吗?

3 个答案:

答案 0 :(得分:1)

为什么你的控件上没有枚举或布尔值,消费页面可以设置(它不像doctype应该在页面之间改变)?

答案 1 :(得分:0)

事实上,DOCTYPE是一个客户端声明,它不参与ASP.NET页面的控制结构(因为它存在于页面的html元素之外)。我同意@TheCloudlessSky,将设置传递给控件,​​因为我可以看到你检测DOCTYPE的唯一方法是打开文件本身并读取第一行,这对于编译的Web应用程序也是无用的。

为什么DOCTYPE会在不同页面之间进行更改?

答案 2 :(得分:0)

DocType不会在页面之间发生变化,但有时您需要访问它。我正在搜索互联网,试图获取这些数据。

我知道它存在于第一个HTMLElement(DomElement.data)中,因为它在调试模式下正确列出,但是使用了类似的东西 -

dElementList [STR] .DomElement.data;

这似乎是我需要获取的数据存在的唯一地方,里面的数据

不可能。我怀疑特定元素类型需要一个演员,但我还没有碰到它。 DomElement的MSDN示例不访问任何元素,但它们的代码与我的代码基本相同,dElement是Dictionary,str是元素的ID或标记(在本例中是'!'来自它的标记), Dictionary返回一个HTMLElement。

所以有人知道我们如何到达DomElement.data吗?