首页 > 编程 > .NET > 正文

详解mvc使用JsonResult返回Json数据

2020-01-17 22:31:06
字体:
来源:转载
供稿:网友

controller 中定义以下方法:

public JsonResult UpdateSingle(int id, string actionName, string actionValue)   {    var res = new JsonResult();    //var value = "actionValue";    //db.ContextOptions.ProxyCreationEnabled = false;    var list = (from a in db.Articles       select new       {        name = a.ArtTitle,        yy = a.ArtPublishTime       }).Take(5);    //记得这里要select new 否则会报错:序列化类型 System.Data.Entity.DynamicProxies XXXXX 的对象时检测到循环引用。    //不select new 也行的加上这句 //db.ContextOptions.ProxyCreationEnabled = false;    res.Data = list;//返回列表     var name = "小华";    var age = "12";    var name1 = "小华";    var age1 = "12";    res.Data = new object[] { new { name, age }, new { name1, age1 } };//返回一个自定义的object数组     var person = new { Name = "小明", Age = 22, Sex = "男" };    res.Data = person;//返回单个对象;     res.Data = "这是个字符串";//返回一个字符串,意义不大;     res.JsonRequestBehavior = JsonRequestBehavior.AllowGet;//允许使用GET方式获取,否则用GET获取是会报错。    return res;   } 

页面调用:

<a href="javascript:void(0);" onclick="javascript:upclick(this);">Click Me</a> <script type="text/javascript">  function upclick(o) {   var obj = $(o);   alert(obj);   $.ajax({      url: "/Articles/UpdateSingle?ran=" + Math.random(),    type: "GET",    dataType: "json",    data: { id: obj.attr("id"), actionName: obj.attr("actionName"), actionValue: obj.attr("actionValue") },    success: function (data) { //    if (data.result == "True") { //     alert("修改成功!"); //    } //    if (obj.attr("actionName") == "ArtVerify") {  //    }     $(o).html(data[0].name);     obj.attr("actionValue", data[0].result);    }   })  } </script> 

以上是在mvc中使用,在webform中怎么使用呢?

在webform中要引用Newtonsoft.Json.dll;

当然你也可以自己拼接字符串。

protected void Page_Load(object sender, EventArgs e)   {    var customer = new customer { name = "李华", sex = "男" };    var customer1 = new customer { name = "小芳", sex = "女" };    var li = new List<customer>();    li.Add(customer);    li.Add(customer1);    var list = Newtonsoft.Json.JavaScriptConvert.SerializeObject(li);    var tt = "[{/"name/":/"李华/",/"sex/":/"男/"},{/"name/":/"小芳/",/"sex/":/"女/"}]";    //new Newtonsoft.Json.JsonSerializer()..(customer);    Response.Write(tt);    Response.End();   }    public class customer   {    public string name { get; set; }    public string sex { get; set; }   } 

页面方法:

<p>   <a href="javascript:void(0)" onclick="javascript:getJsonData();">GetJsonData</a>  </p>  <div id="dataDiv">   ggg  </div>  <script type="text/javascript">   function getJsonData() {    var str = "";    $.getJSON("/Json.aspx", function (data) {     var tt = "";     $.each(data, function (k, v) {      $.each(v, function (kk, vv) {       tt += kk + ":" + vv + "<br/>";      });     });     $("#dataDiv").html(tt);    });   }  </script> 

显示结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表