2009-12-01 6 views
3

Nous utilisons des pages maîtres dans notre application Web, le type de document est défini dans la page maître.Modifier dynamiquement le doctype d'une page ASPX

Sur l'une des pages, j'ai besoin de changer le doctype, ou bien un contrôle tiers ne se reproduit pas correctement.

Comment est-ce que je peux changer le doctype seulement de cette certaine page sans affecter le reste des pages?

Répondre

1

Je ne sais pas si cela fonctionnerait, mais

Vous pouvez réinitialiser le type de contenu avec

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

Ensuite, écrivez votre type doctype

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

Mais vous aussi perdre tout Méta en-têtes et tels, vous êtes probablement mieux avec l'autre solution fournie par Chris Lively ...

5

De loin, le plus simple est de faire une autre copie de votre page maître, changez le doctype et faites que cette page utilise le nouveau master.

1

Avez-vous utilisé un contrôle 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"> 

Ensuite, dans le Page_Load, vous pouvez:

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

Cela fonctionne aussi ....

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

travaillé comme un charme pour moi, sur une page maître héritée – ruffrey

Questions connexes