ASP.NET MVC и тип содержимого text / xml - PullRequest
37 голосов
/ 09 июня 2009

Я хочу вернуть View () из действия, и полученный ответ должен иметь тип содержимого text / xml вместо текста по умолчанию / html.

Я пробовал следующее, но безуспешно:

Response.ContentType = "text/xml"; 
return View();

Я знаю, что вы можете указать тип содержимого, возвращая ContentResult, но это не отображает мое представление.

Надеюсь, мне не нужно отображать представление в строку, а затем использовать return Content(), поэтому я, вероятно, упускаю простой способ.

Ответы [ 6 ]

55 голосов
/ 09 июня 2009
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" 
    ContentType="text/xml" %>
40 голосов
/ 09 июня 2009

Вам нужно визуализировать строку. Чтобы вернуть text / xml, сделайте следующее:

return new ContentResult {
    ContentType = "text/xml",
    Content = UTF8.GetString(yourXmlString),
    ContentEncoding = System.Text.Encoding.UTF8
}; 
6 голосов
/ 14 декабря 2010

Пользовательский элемент управления (ASCX) не принимает ContentType = "text / xml".

Решение:

public ActionResult xxx()
  {
     Response.ContentType = "text/xml";
     return View("xxx.ascx");
  }
1 голос
/ 09 июня 2009

Вам нужно представление, которое не переопределяет вещи и генерирует HTML, включая собственный контекстный тип.

Пользовательское представление может напрямую отображаться в Response.Write (см. JsonResult в Reflector для класса, который очень похож на то, что вам нужно).

Чтобы отобразить XML без промежуточной строки, сохраните ваш XML в XmlWriter, созданном в Response.Output.

0 голосов
/ 22 июня 2019

Если вы ищете представление Razor (.cshtml), задайте тип содержимого в коде представления :

@{
    Response.ContentType = "text/xml";
}
0 голосов
/ 09 июня 2009

Вы пытались установить response.content из метода pre render представления на странице codebehind? это, очевидно, предполагает, что вы используете механизм просмотра веб-формы

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