动态更改aspx页面的doctype

时间:2009-12-01 14:10:38

标签: c# asp.net doctype

我们在Web应用程序中使用母版页,doctype在母版页中定义。

在其中一个页面上,我需要更改doctype,否则第三方控件的呈现方式不正确。

如何在不影响其余页面的情况下更改该特定页面的文档类型?

4 个答案:

答案 0 :(得分:5)

到目前为止,最简单的方法是制作主页的另一个副本,更改其中的doctype并让此页面使用新的主页。

答案 1 :(得分:1)

我不知道它是否可行但是

您可以使用

重置内容类型
Response.Clear();
Response.ContentType = "text/html";

然后编写您的doctype类型

Response.Write(<new doc-type>);

但是你也会松开所有元标题等等,你可能会更好地使用Chris Lively提供的其他解决方案......

答案 2 :(得分:1)

您是否使用过ASP Literal控件?

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<asp:literal runat="server" id="docType"></asp:literal>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">

然后在Page_Load中,您可以:

this.docType.Text = {your doctype-string here};

答案 3 :(得分:1)

这也有效....

protected override void Render(HtmlTextWriter writer)
{
        StringBuilder sb = new StringBuilder("<!DOCTYPE HTML>" + Environment.NewLine);
        HtmlTextWriter textWriter = new HtmlTextWriter(new StringWriter(sb));
        base.Render(textWriter);
        writer.Write(sb.ToString());
    }