当前位置:   article > 正文

asp.net MVC控制器返回json问题总结_vs2019 mvc控制器 json 字符串

vs2019 mvc控制器 json 字符串

MVC项目中,经常需要在控制器中向客户端返回json数据,常见的返回方法如下:

1、如果服务器端完全采用微软的类,则要序列号的集合类通常使用List<T>,返回时直接使用Json(list);则会自动将列表中的内容进行序列号,生成json字符串。

2、如果服务器端使用DataTable,则DataTable微软自己不能序列号,很奇怪!要使用Json(table)返回,是不能直接序列号的。还需要将行定义成对象,如:

  1. class Person
  2. {
  3. public string username { get; set; }
  4. public string truename { get; set; }
  5. public int age { get; set; }
  6. }
----------------------------------

  1. List<Person> list = new List<Person>();
  2. DataTable dt = new DataTable();
  3. try
  4. {
  5. sqlcnn.Open();
  6. SqlDataReader reader = sqlcmm.ExecuteReader();
  7. while (reader.Read())
  8. list.Add(new Person { username = reader.GetString(0), truename = reader.GetString(1), age = reader.GetInt32(2) });
  9. //读取数据
  10. sqlcnn.Close();
  11. }
  12. catch
  13. {
  14. }
  15. return Json(list, JsonRequestBehavior.AllowGet);

这样比较啰嗦。

3、直接使用Newtonsoft.json对table进行序列化,得到json字符串

此时不能使用Json(str)的形式返回,这样返回的话,客户端不会识别为json。

可以直接返回Content(str)即可。

4、如果采用字符串拼接的形式,同方法3.


在浏览器中测试时,返回如下内容,说明有问题,在客户不会被自动解析成json。



测试时,返回如下结果,说明正常返回了json串。


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/550310
推荐阅读
相关标签
  

闽ICP备14008679号