繁体   English   中英

动态更改aspx页面的文档类型

[英]Change the doctype of an aspx page dynamically

我们在Web应用程序中使用母版页,文档类型在母版页中定义。

在其中一个页面上,我需要更改doctype,否则第三方控件将呈现错误。

如何仅更改特定页面的文档类型而不影响其余页面?

到目前为止,最简单的方法是制作母版页的另一个副本,在其中更改doctype并使该页使用新的母版。

这也可以...

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());
    }

我不知道是否行得通

您可以使用

Response.Clear();
Response.ContentType = "text/html";

然后写你的doctype类型

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

但是您还将丢失所有元头,因此,最好使用Chris Lively提供的其他解决方案。

您是否使用过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};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM