Я могу вернуть JSON и частичные представления (html) в качестве допустимого ActionResult, но как вернуть строку XML?
Ответ 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);
}