zoukankan      html  css  js  c++  java
  • 主攻ASP.NET MVC4.0之重生:ASP.NET MVC使用JSONP

    原文地址

    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('失败');
                 }
             });        
    }
  • 相关阅读:
    Delphi公用函数单元
    Delphi XE5 for Android (十一)
    Delphi XE5 for Android (十)
    Delphi XE5 for Android (九)
    Delphi XE5 for Android (八)
    Delphi XE5 for Android (七)
    Delphi XE5 for Android (五)
    Delphi XE5 for Android (四)
    Delphi XE5 for Android (三)
    Delphi XE5 for Android (二)
  • 原文地址:https://www.cnblogs.com/cube/p/3381846.html
Copyright © 2011-2022 走看看