Динамически изменяйте тип страницы aspx - PullRequest
3 голосов
/ 01 декабря 2009

Мы используем главные страницы в нашем веб-приложении, тип документа определяется на главной странице.

На одной из страниц мне нужно изменить тип документа, иначе сторонний элемент управления отображает некорректно.

Как я могу изменить тип документа только для определенной страницы, не затрагивая остальные страницы?

Ответы [ 4 ]

5 голосов
/ 01 декабря 2009

Самым простым способом является создание еще одной копии главной страницы, изменение в ней типа документа и использование этой страницей нового мастера.

1 голос
/ 25 декабря 2012

Это тоже работает ....

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());
    }
1 голос
/ 03 февраля 2012

Использовали ли вы элемент управления 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};
1 голос
/ 01 декабря 2009

Не знаю, сработает ли это, но

Вы можете сбросить тип содержимого с помощью

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

Затем напишите ваш тип документа

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

Но вы также потеряете все мета-заголовки и тому подобное, вам, вероятно, лучше воспользоваться другим решением, предоставленным Крисом Лайвли ...

...