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


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

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

4 55

4 ответа:

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

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

другой способ сделать это с помощью XDocument:

using System.Xml.Linq;

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

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

Если вы строите 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);
}