Question

Possible Duplicate:
What is the best way to return XML from a controller's action in ASP.NET MVC?

I'm able to return JSON and partial views (html) as a valid ActionResult, but how would one return an XML string?

Was it helpful?

Solution

You could use return this.Content(xmlString, "text/xml"); to return a built XML string from an action.

OTHER TIPS

For JSON/XML I have written an XML/JSON Action Filter that makes it very easy to tackle without handling special cases in your action handler (which is what you seem to be doing).

Another way to do this is by using XDocument:

using System.Xml.Linq;

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

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

If you're building the XML using Linq-to-XML then check out my answer here. It allows you to write code like this:

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

    return new XmlActionResult(xml);
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top