我们在Web应用程序中使用母版页,doctype在母版页中定义。
在其中一个页面上,我需要更改doctype,否则第三方控件的呈现方式不正确。
如何在不影响其余页面的情况下更改该特定页面的文档类型?
答案 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());
}