Как я могу установить тип содержимого по умолчанию text / html в моем web.config? - PullRequest
4 голосов
/ 04 мая 2010

Я бы хотел установить тип содержимого по умолчанию для веб-страниц в моем приложении ASP.NET MVC на text / html.

Я знаю, что это можно сделать, добавив ContentType = "text / html" ко всем моим <% Page%> элементам, но я бы предпочел использовать вместо него web.config. Как я могу это сделать?

Спасибо

Адриан

Редактировать: Я знаю, что "текст / HTML" является значением по умолчанию для ASP.NET, но по неизвестным причинам Opera по-прежнему пытается проанализировать мой веб-сайт как XHML, если я явно не установил тип содержимого в Элемент <% Page%>.

Ответы [ 4 ]

8 голосов
/ 09 октября 2010

У нас была точно такая же проблема, и проблема для нас заключалась в том, что в файле mobile.browser, который мы получили от CodePlex, есть ошибка, которая заставляет asp.net всегда сообщать настольной версии Opera, что мы отправляем им xhtml. Я удалил файл mobile.browser, и он решил проблему. Кажется, единственное, что мы могли найти, что переопределило бы директиву от mobile.browser, это указать ContentType = "text / html" для каждого тега <% @ Page%> представлений. Даже установка типа контента в global.asax не имела никакого значения.

ОБНОВЛЕНИЕ: Я обнаружил, что удаление всех узлов возможностей с именем "предпочитаемое рендерингMime" из файла mobile.browser решит эту проблему и все еще позволяет нам идентифицировать мобильные браузеры.

1 голос
/ 04 мая 2010

Тип содержимого для просмотра aspx уже установлен на text/html.

Content-Type: text/html; charset=utf-8
1 голос
/ 04 мая 2010

"text / html" является значением по умолчанию для этого свойства в объекте HttpResponse.

Если вам не нужно установить его на что-то другое, ничего не делайте. Чтобы установить для него другое значение по умолчанию, вам может потребоваться создать базовый класс Page, устанавливающий свойство и наследовать от него.

1 голос
/ 04 мая 2010

Вы можете сделать это программно в Global.asax.cs в обработчике события Global_BeginRequest:

protected void Application_BeginRequest(Object sender, EventArgs e)
{
    HttpContext.Current.Response.ContentType = "text/html";
}

К вашему сведению, в документах говорится, что "text / HTML" в любом случае является ASP.NET по умолчанию: http://msdn.microsoft.com/en-us/library/ms525208(VS.85).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...