Original: The main attack of the MVC4.0: ASP. NET MVC uses JSONP
Original address
Http://www.codeguru.com/csharp/.net/net_asp/using-jsonp-in-asp.net-mvc.htm
1. Create Jsonpcontroller
Public classJsonpcontroller:controller {//GET:/jsonp/Voteuserrepository userrepository =Newvoteuserrepository (); [HttpGet] PublicJsonpresult GetData (int?page) { varList = Userrepository. Getmodellist (). Where (d = d.photoworkinpoll! =NULL). Where (d = d.photowork.firstordefault (). state = =1); varUserList = fromCinchUserrepository. Getpagemodellist (list,8, page??1) Select New{c.voteuserid, c.username}; Jsonpresult result=NewJsonpresult (userlist); returnresult; } }
2. Create Jsonpresult
Public classJsonpresult:jsonresult {Objectdata =NULL; PublicJsonpresult () {} PublicJsonpresult (Objectdata) { This. data =data; } Public Override voidExecuteresult (ControllerContext controllercontext) {if(ControllerContext! =NULL) {httpresponsebase Response=ControllerContext.HttpContext.Response; Httprequestbase Request=controllerContext.HttpContext.Request; stringCallbackfunction = request["Callback"]; if(string. IsNullOrEmpty (callbackfunction)) {Throw NewException ("Callback function Name must is provided in the request!"); } Response.ContentType="Application/x-javascript"; if(Data! =NULL) {JavaScriptSerializer Serializer=NewJavaScriptSerializer (); Response.Write (string. Format ("{0} ({1});", Callbackfunction, serializer. Serialize (data))); } } } }
JSON data content address: Http://localhost:12111/Jsonp/GetData?page=1&callback=JsonCallback
The format is as follows:
Jsoncallback ([{"Voteuserid": 1264, "UserName": "sjc196576 "},{"Voteuserid": 1265, "UserName": "Zhushan County Ink Dual "},{" Voteuserid ": 1266," UserName ":" qwe1725060988 "},{" Voteuserid ": 1267," UserName ":" Block River 1982610 "},{" Voteuserid ": 1268," UserName ":" 625297524 "},{" Voteuserid ": 1269," UserName ":" chen223150 "},{" Voteuserid ": 1270," UserName ":" 1296909213 "},{" Voteuserid ": 1271," UserName ":" 878223109 "}]);
3. Other page Call data method
functionTestcallback () {$.ajax ({type:"Get", Async:false, URL:"Http://localhost:12111/Jsonp/GetData?page=1&callback=JsonCallback", DataType:"Jsonp", Jsonp:"Callback", Jsonpcallback:"Jsoncallback", Success:function(JSON) { for(vari=0;i<7;i++) {alert (Json[i]. UserName); }}, Error:function() {alert (Failed); } }); }
Focus on the rebirth of ASP. NET MVC4.0: ASP. NET MVC uses JSONP