博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

工作中遇到直接使用webform中的page_load()的方法直接返回json结果

但是直接使用Response.Write("");这个方法返回的结果是字符串,在前端获取的是字符串,不能直接转为json数据

大概思路是在后端page_load()将object 序列号成json格式的字符串

前端将字符串反序列化成json对象

后端代码:

 protected void Page_Load(object sender, EventArgs e)
    {
        var jsonObject = new { Result = 0, Msg = "测试" };
        string jsonString = JsonConvert.SerializeObject(jsonObject);
        Context.Response.Write(jsonString);
        Context.Response.End();
    }

JsonConvert.SerializeObject();这个方法是引用了第三方的dll,Newtonsoft.Json.dll

前端代码:

   function test(parameters)
         {
             $.ajax({
                 type: "post",
                 url: "About.aspx",
                 data: "",
                 async: true,
                 success: function (jsonString)
                 {
                     var resultJsonObject = JSON.parse(jsonString);
                     if (resultJsonObject.Resulet == "1")
                     {
                         alert("成功");
                     } else
                     {
                         alert(resultJsonObject.Msg);
                     }
                     alert(resultJsonObject.Msg);
                     window.location.href = "Default.aspx"; 
                 }
             });

         }

  这里JSON.parse();是引用Json2.js这个文件

或者微软的SDK也自带,如图