主攻ASP.NET MVC4.0之重生:ASP.NET MVC使用JSONP
2017-04-21 10:52
597 查看
原文地址
http://www.codeguru.com/csharp/.net/net_asp/using-jsonp-in-asp.net-mvc.htm
1.创建JsonpController
2.创建JsonpResult
Json数据内容地址:http://localhost:12111/Jsonp/GetData?page=1&callback=JsonCallback
格式例如如下:
http://www.codeguru.com/csharp/.net/net_asp/using-jsonp-in-asp.net-mvc.htm
1.创建JsonpController
public class JsonpController : Controller { // GET: /Jsonp/ VoteUserRepository userrepository = new VoteUserRepository(); [HttpGet] public JsonpResult GetData(int? page) { var list = userrepository.GetModelList().Where(d => d.PhotoWorkInPoll != null).Where(d => d.PhotoWork.FirstOrDefault().State == 1); var userlist = from c in userrepository.GetPageModelList(list, 8, page ?? 1) select new { c.VoteUserID, c.UserName }; JsonpResult result = new JsonpResult(userlist); return result; } }
2.创建JsonpResult
public class JsonpResult : JsonResult { object data = null; public JsonpResult() { } public JsonpResult(object data) { this.data = data; } public override void ExecuteResult(ControllerContext controllerContext) { if (controllerContext != null) { HttpResponseBase Response = controllerContext.HttpContext.Response; HttpRequestBase Request = controllerContext.HttpContext.Request; string callbackfunction = Request["callback"]; if (string.IsNullOrEmpty(callbackfunction)) { throw new Exception("Callback function name must be provided in the request!"); } Response.ContentType = "application/x-javascript"; if (data != null) { JavaScriptSerializer serializer = new JavaScriptSerializer(); Response.Write(string.Format("{0}({1});", callbackfunction, serializer.Serialize(data))); } } } }
Json数据内容地址:http://localhost:12111/Jsonp/GetData?page=1&callback=JsonCallback
格式例如如下:
JsonCallback([{"VoteUserID":1264,"UserName":"sjc196576 "},{"VoteUserID":1265,"UserName":"竹山县朱本双 "},{"VoteUserID":1266,"UserName":"qwe1725060988 "},{"VoteUserID":1267,"UserName":"堵河1982610 "},{"VoteUserID":1268,"UserName":"625297524 "},{"VoteUserID":1269,"UserName":"chen223150 "},{"VoteUserID":1270,"UserName":"1296909213 "},{"VoteUserID":1271,"UserName":"878223109 "}]); 3.其他页面调用数据方法
function TestCallback () { $.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 (var i=0;i<7;i++){ alert(json[i].UserName); } }, error: function(){ alert('失败'); } }); }
相关文章推荐
- 主攻ASP.NET MVC4.0之重生:ASP.NET MVC使用JSONP
- 主攻ASP.NET MVC4.0之重生:ASP.NET MVC使用JSONP
- 主攻ASP.NET.4.5.1 MVC5.0之重生:在项目中使用zTree jQuery 树插件
- 主攻ASP.NET MVC4.0之重生:Asp.Net MVC WebApi OData
- Jsonp简单认识(后端使用的是asp.net mvc)
- 主攻ASP.NET.4.5.1 MVC5.0之重生:系统角色与权限(一)
- 主攻ASP.NET.3.5.MVC3.0架构之重生:MVC在Global.asax.定义定时处理程序
- 让ASP.NET MVC不使用jsonp也可以跨域访问
- Jsonp简单认识(后端使用的是asp.net mvc)
- 主攻ASP.NET.4.5.1 MVC5.0之重生:根据产品类别显示菜单分类和分页
- 主攻ASP.NET.4.5.1 MVC5.0之重生:Web项目语音朗读网页文本,简单语音提示浏览状态
- 主攻ASP.NET.4.5.1 MVC5.0之重生:空地搭建一个包含 Ninject框架 项目
- 主攻ASP.NET.4.5.1 MVC5.0之重生:政府行政网站常用友情链接跳转javascript[干货分享]
- 主攻ASP.NET.4.5.1 MVC5.0之重生:创建UIHelper通用自定义分页和选择开关与PagesHelper和IsSelect简单用法
- [翻译] 使用ASP.NET MVC操作过滤器记录日志
- ASP.NET MVC - 使用Post, Redirect, Get (PRG)模式
- 在Asp.net Mvc Preview 4中使用AjaxHelper
- [翻译]ASP.NET MVC Tip #39 – 在ASP.NET MVC中使用分布式缓存
- Asp.net Mvc 的积木,谈Asp.net MVC中视图逻辑模块化和controller组件的使用方法
- Asp.net2005 使用 NVelocity 实现 MVC