Hi I'm trying to return a view that is xml, meaning the content type will be "text/xml", and the view is using ASP.NET MVC razor. Another post ASP.NET MVC and text/xml content type showed how to do it with aspx view. How do I get the same done with razor?
I found an example of an rss feed produced with a razor view here:
Basically you have to set the Response.ContentType
to "text/xml"
, and then you can just write your xml as if it was html.
You have to scroll down to see the actual code so I'll copy it here:
@{
var db = Database.OpenFile("Database.sdf");
var getRss = db.Query("SELECT TOP(5) * FROM Table" );
Response.ContentType = "text/xml";
}
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>Website name</title>
<link>website link</link>
<description>News for website</description>
<dc:language>en-gb</dc:language>
<dc:creator>email</dc:creator>
<dc:rights>Copyright 2010</dc:rights>
<admin:generatorAgent rdf:resource="http://www.styledna.net/" />
@foreach (var row in getRss) {
<item>
<title>@row.title</title>
<link>@row.link</link>
<description> some html desc for the item </description>
</item>
}
</channel>
</rss>