详解mvc使用JsonResult返回Json数据

 更新时间:2017年01月03日 09:59:34   作者:weizengxun  
这篇文章主要介绍了详解mvc使用JsonResult返回Json数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

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> 

显示结果:

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

相关文章

  • .Net ORM 访问 Firebird 数据库的方法

    .Net ORM 访问 Firebird 数据库的方法

    这篇文章简单介绍了在 .net6.0 环境中使用 FreeSql 对 Firebird 数据库的访问,目前 FreeSql 还支持.net framework 4.0 和 xamarin 平台上使用,对.Net ORM 访问 Firebird 数据库相关知识感兴趣的朋友一起看看吧
    2022-07-07
  • ASP.NET Core通用主机实现托管服务

    ASP.NET Core通用主机实现托管服务

    这篇文章介绍了ASP.NET Core通用主机实现托管服务的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • 10个.NET中删除空白字符串的方法

    10个.NET中删除空白字符串的方法

    我们有无数方法可用于删除字符串中的所有空白。大部分都能够在绝大多数的用例中很好工作,但在某些对时间敏感的应用程序中,是否采用最快的方法可能就会造成天壤之别。
    2015-08-08
  • asp.net继承IHttpHandler接口实现给网站图片添加水印功能实例

    asp.net继承IHttpHandler接口实现给网站图片添加水印功能实例

    这篇文章主要介绍了asp.net继承IHttpHandler接口实现给网站图片添加水印功能,实例分析了asp.net基于IHttpHandler接口实现网站图片水印功能的具体步骤与相关技巧,需要的朋友可以参考下
    2016-07-07
  • asp.net 数据访问层基类

    asp.net 数据访问层基类

    阿楠收集自网络,打包下载,以下只截取其中一部分代码。
    2009-03-03
  • ASP.NET 前台javascript与后台代码调用

    ASP.NET 前台javascript与后台代码调用

    ASP.NET中前台javascript与后台代码调用的实现代码说明。
    2009-08-08
  • 简单谈谈.NET Core跨平台开发

    简单谈谈.NET Core跨平台开发

    本文给大家详细介绍了如何使用.NET Core进行跨平台开发,包含简单的环境架设以及配置,以及使用vs进行编译运行项目和注意事项,有需要的小伙伴可以参考下
    2016-07-07
  • 在Framework4.0中实现延迟加载的实现方法

    在Framework4.0中实现延迟加载的实现方法

    延迟加载,亦称延迟实例化,延迟初始化等,主要表达的思想是,把对象的创建将会延迟到使用时创建,而不是在对象实例化时创建对象,即用时才加载。
    2011-08-08
  • asp.NET开发中正则表达式中BUG分析

    asp.NET开发中正则表达式中BUG分析

    又发现了一个 .net的bug!最近在使用正则表达式的时候发现:在忽略大小写的时候,匹配值从 0xff 到 0xffff 之间的所有字符,正则表达式竟然也能匹配两个 ASCII 字符:i(code: 0x69) 和 I(code: 0x49);但是仍然不能匹配其他的 ASCII 字母和数字。
    2008-10-10
  • asp.net中将数据库绑定到DataList控件的实现方法与实例代码

    asp.net中将数据库绑定到DataList控件的实现方法与实例代码

    我现在要做这个页面,然后我用DataList控件显示题目,我想问如何把我数据库的题目绑定到DataList控件里面,然后让它显示考试题目?
    2011-06-06

最新评论