ASP.NET MVC 4 / Web API - insert Razor renderer for Accepts: text/html

Viewed 2037

I am creating a RESTful Web Service using ASP.NET MVC 4 Web API. For API access, I am returning JSON, though once I get everything working correctly, the content negotiation should work for XML and JSON by default.

Since I am working towards a truly RESTful resource-centric web service, my URI's will be pointing to actual resources. I would like to take advantage of that by returning an HTML representation of the resource if Accepts: text/html comes in the request (like throwing the link in a browser).

I would like to be able to take advantage of MVC 4 Web API's content negotiation to insert a renderer for text/html that uses Razor templates. Are there any working examples of doing just this?

Yes, this is bridging "regular" MVC pages and Web API. Basically I'd like to create a renderer that uses a convention based approach to finding and rendering Razor views just like "regular" MVC. I can come up with the convention-based view lookup logic. I'm simply looking for a) globally inserting my text/html renderer into the content negotation, and b) using the Razor engine manually to render my model into HTML.

2 Answers
Related