Подтвердить что ты не робот

Как вернуть XML-строку в качестве результата действия в MVC

Возможный дубликат:
Каков наилучший способ вернуть XML из действия контроллера в ASP.NET MVC?

Я могу вернуть JSON и частичные представления (html) в качестве допустимого ActionResult, но как вернуть строку XML?

4b9b3361

Ответ 1

Вы можете использовать return this.Content(xmlString, "text/xml");, чтобы вернуть встроенную строку XML из действия.

Ответ 2

Для JSON/XML я написал XML/JSON Action Filter, который позволяет легко справиться без обработки особых случаев в вашем обработчике действий (это то, что вы, кажется, делаете).

Ответ 3

Другой способ сделать это - использовать XDocument:

using System.Xml.Linq;

public XDocument ExportXml()
{
    Response.AddHeader("Content-Type", "text/xml");

    return XDocument.Parse("<xml>...");
}

Ответ 4

Если вы строите XML с помощью Linq-to-XML, тогда просмотрите мой ответ здесь. Это позволяет вам писать код следующим образом:

public ActionResult MyXmlAction()
{
    var xml = new XDocument(
        new XElement("root",
            new XAttribute("version", "2.0"),
            new XElement("child", "Hello World!")));

    return new XmlActionResult(xml);
}