Mvc.Jsonp is a simple ActionResult and Controller base class for adding JSONP support to MVC 3.
This repository has been archived and is now read-only.
Just subclass your controller with JsonpControllerBase
, like this:
public class HomeController : JsonpControllerBase
{
public JsonpResult Index(string callback = "processStarships")
{
var starships = new List<Starship>
{
new Starship { Name = "Enterprise", Registry = "NCC-1701" },
new Starship { Name = "Galaxy", Registry = "NCC-70637" },
new Starship { Name = "Tikopai", Registry = "NCC-1800" }
};
return this.Jsonp(starships, callback, JsonRequestBehavior.AllowGet);
}
}
If you don't want to make your controller a subclass of JsonpControllerBase
, you can just return a JsonpResult
, like this:
public class HomeController
{
public JsonpResult Index(string callback = "processStarships")
{
var starships = new List<Starship>
{
new Starship { Name = "Enterprise", Registry = "NCC-1701" },
new Starship { Name = "Galaxy", Registry = "NCC-70637" },
new Starship { Name = "Tikopai", Registry = "NCC-1800" }
};
return new JsonpResult
{
Callback = callback,
Data = starships,
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
}
This will give you output of type application/javascript
like this:
processStarships([{"Name":"Enterprise","Registry":"NCC-1701"},{"Name":"Galaxy","Registry":"NCC-70637},{"Name":"Tikopai","Registry":"NCC-1800"}]);
To build with .NET 4.0, just run the included build.cmd. This will place Mvc.Jsonp.dll and its symbols in the output directory.
To install Mvc.Jsonp from the NuGet repository, use this command:
PM> Install-Package Mvc.Jsonp
Mvc.Jsonp is based on http://stackoverflow.com/questions/758879/asp-net-mvc-returning-jsonp.