一、当查询得到的数据符合前台要求,不需要做任何处理,直接DataList To Json 返回前台。
代码:

  1. var allEntities = service.QueryByPage(this.GetSearchFilter(searchModel), "InsertedDateUtc Descending", pageSize, searchModel.PageIndex + , out recordCount);
  2. return Json(allEntities, JsonRequestBehavior.AllowGet);

前台得到的Json数据(两条记录)

  1. [
  2. {
  3. "DocumentID": "61d09198-198e-403e-89a0-01b98402c8ca",
  4. "DocumentFileName": "189017.docx.pdf",
  5. "ContentType": "doc",
  6. "Size": 167228,
  7. "InsertedDateUtc": "/Date(1358762613167)/",
  8. "LastModifiedOnDataSource": "/Date(1358504490000)/",
  9. "UniqueIDOnDataSource": "189017",
  10. "IsActive": true,
  11. "HasBeenIndexed": true,
  12. "TradeProductID": "1e04dc4d-5a68-4982-ba88-170a3f6525f5",
  13. "HasProcessedForAlerts": false,
  14. "Congress": "ESMO-2012",
  15. "Authors": "Zi Ming Zhao",
  16. "CongressType": "Poster",
  17. "DocumentTitle": "立普妥-一级预防中的应用 ",
  18. "EntityState": 2,
  19. "EntityKey": {
  20. "EntitySetName": "Document",
  21. "EntityContainerName": "MVCExampleEntities",
  22. "EntityKeyValues": [
  23. {
  24. "Key": "DocumentID",
  25. "Value": "61d09198-198e-403e-89a0-01b98402c8ca"
  26. }
  27. ],
  28. "IsTemporary": false
  29. }
  30. },
  31. {
  32. "DocumentID": "a71ea30c-b544-41fa-b008-77adcf7a0250",
  33. "DocumentFileName": "189153.docx.pdf",
  34. "ContentType": "doc",
  35. "Size": 136195,
  36. "InsertedDateUtc": "/Date(1358762610573)/",
  37. "LastModifiedOnDataSource": "/Date(1358778247000)/",
  38. "UniqueIDOnDataSource": "189153",
  39. "IsActive": true,
  40. "HasBeenIndexed": true,
  41. "TradeProductID": "1e04dc4d-5a68-4982-ba88-170a3f6525f5",
  42. "HasProcessedForAlerts": false,
  43. "Congress": null,
  44. "Authors": null,
  45. "CongressType": null,
  46. "DocumentTitle": "立普妥-碾碎服用 ",
  47. "EntityState": 2,
  48. "EntityKey": {
  49. "EntitySetName": "Document",
  50. "EntityContainerName": "MVCExampleEntities",
  51. "EntityKeyValues": [
  52. {
  53. "Key": "DocumentID",
  54. "Value": "a71ea30c-b544-41fa-b008-77adcf7a0250"
  55. }
  56. ],
  57. "IsTemporary": false
  58. }
  59. }
  60. ]
二、当得到的数据不能满足前台需求,比如,我希望加入一个键值对存入总记录数,以方便做分页。
 
   两种方法:
       1、拼字符串,注意return 的是Content( ).

代码

  1. var allEntities = service.QueryByPage(this.GetSearchFilter(searchModel), "InsertedDateUtc Descending", pageSize, searchModel.PageIndex + , out recordCount);
  2.  
  3. string json = JsonConvert.SerializeObject(allEntities);
  4. StringBuilder sb = new StringBuilder();
  5. sb.Append("{");
  6. sb.Append("\"total\"");
  7. sb.Append(":280,");
  8. sb.Append("\"rows\"");
  9. sb.Append(":");
  10. sb.Append(json);
  11. sb.Append("}");
  12. return Content(sb.ToString());
  13.  
  14. 或者直接用String: string jsonString = "{'total':280,'rows':" + json + "}"; (此方法用easyui测试时,前台无法解析)。
  15. return Content(jsonString);

前台得到的Json数据

  1. {
  2. "total": 280,
  3. "rows": [
  4. {
  5. "$id": "1",
  6. "DocumentID": "61d09198-198e-403e-89a0-01b98402c8ca",
  7. "DocumentFileName": "189017.docx.pdf",
  8. "ContentType": "doc",
  9. "Size": 167228,
  10. "InsertedDateUtc": "2013-01-21T18:03:33.167",
  11. "LastModifiedOnDataSource": "2013-01-18T18:21:30",
  12. "UniqueIDOnDataSource": "189017",
  13. "IsActive": true,
  14. "HasBeenIndexed": true,
  15. "TradeProductID": "1e04dc4d-5a68-4982-ba88-170a3f6525f5",
  16. "HasProcessedForAlerts": false,
  17. "Congress": "ESMO-2012",
  18. "Authors": "Zi Ming Zhao",
  19. "CongressType": "Poster",
  20. "DocumentTitle": "立普妥-一级预防中的应用 ",
  21. "EntityKey": {
  22. "$id": "2",
  23. "EntitySetName": "Document",
  24. "EntityContainerName": "MVCExampleEntities",
  25. "EntityKeyValues": [
  26. {
  27. "Key": "DocumentID",
  28. "Type": "System.Guid",
  29. "Value": "61d09198-198e-403e-89a0-01b98402c8ca"
  30. }
  31. ]
  32. }
  33. },
  34. {
  35. "$id": "3",
  36. "DocumentID": "a71ea30c-b544-41fa-b008-77adcf7a0250",
  37. "DocumentFileName": "189153.docx.pdf",
  38. "ContentType": "doc",
  39. "Size": 136195,
  40. "InsertedDateUtc": "2013-01-21T18:03:30.573",
  41. "LastModifiedOnDataSource": "2013-01-21T22:24:07",
  42. "UniqueIDOnDataSource": "189153",
  43. "IsActive": true,
  44. "HasBeenIndexed": true,
  45. "TradeProductID": "1e04dc4d-5a68-4982-ba88-170a3f6525f5",
  46. "HasProcessedForAlerts": false,
  47. "Congress": null,
  48. "Authors": null,
  49. "CongressType": null,
  50. "DocumentTitle": "立普妥-碾碎服用 ",
  51. "EntityKey": {
  52. "$id": "4",
  53. "EntitySetName": "Document",
  54. "EntityContainerName": "MVCExampleEntities",
  55. "EntityKeyValues": [
  56. {
  57. "Key": "DocumentID",
  58. "Type": "System.Guid",
  59. "Value": "a71ea30c-b544-41fa-b008-77adcf7a0250"
  60. }

2、重新创建一个新Json对象,把数据装进去。然后返回前台。

  1. var allEntities = service.QueryByPage(this.GetSearchFilter(searchModel), "InsertedDateUtc Descending", pageSize, searchModel.PageIndex + , out recordCount);
  2. // 创建JsonResult对象。
  3. JsonResult j = new JsonResult()
  4. {
  5. Data = new
  6. {
  7. total = recordCount,
  8. rows = allEntities
  9. }
  10. };
  11. //以下两个参数可选,前台接收有问题时可加上试试
  12. // j.ContentType = "application/json";
  13. //j.ContentEncoding = System.Text.Encoding.UTF8;
  14. //以下参数设置是否允许GET请求
  15. j.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
  16. return j; //此处不能再用 return Json(j, JsonRequestBehavior.AllowGet);//方式,否则相当于把Json又转换了一遍Json,前台接收的数据如下(我用easyui测试时,前台无法解析)。

EasyUi环境下有问题的Json

  1. {
  2. "ContentEncoding": null,
  3. "ContentType": null,
  4. "Data": {
  5. "total": 920,
  6. "rows": [
  7. {
  8. "DocumentID": "61d09198-198e-403e-89a0-01b98402c8ca",
  9. "DocumentFileName": "189017.docx.pdf",
  10. "ContentType": "doc",
  11. "Size": 167228,
  12. "InsertedDateUtc": "/Date(1358762613167)/",
  13. "LastModifiedOnDataSource": "/Date(1358504490000)/",
  14. "UniqueIDOnDataSource": "189017",
  15. "IsActive": true,
  16. "HasBeenIndexed": true,
  17. "TradeProductID": "1e04dc4d-5a68-4982-ba88-170a3f6525f5",
  18. "HasProcessedForAlerts": false,
  19. "Congress": "ESMO-2012",
  20. "Authors": "Zi Ming Zhao",
  21. "CongressType": "Poster",
  22. "DocumentTitle": "立普妥-一级预防中的应用 ",
  23. "EntityState": 2,
  24. "EntityKey": {
  25. "EntitySetName": "Document",
  26. "EntityContainerName": "MVCExampleEntities",
  27. "EntityKeyValues": [
  28. {
  29. "Key": "DocumentID",
  30. "Value": "61d09198-198e-403e-89a0-01b98402c8ca"
  31. }
  32. ],
  33. "IsTemporary": false
  34. }
  35. },
  36. {
  37. "DocumentID": "a71ea30c-b544-41fa-b008-77adcf7a0250",
  38. "DocumentFileName": "189153.docx.pdf",
  39. "ContentType": "doc",
  40. "Size": 136195,
  41. "InsertedDateUtc": "/Date(1358762610573)/",
  42. "LastModifiedOnDataSource": "/Date(1358778247000)/",
  43. "UniqueIDOnDataSource": "189153",
  44. "IsActive": true,
  45. "HasBeenIndexed": true,
  46. "TradeProductID": "1e04dc4d-5a68-4982-ba88-170a3f6525f5",
  47. "HasProcessedForAlerts": false,
  48. "Congress": null,
  49. "Authors": null,
  50. "CongressType": null,
  51. "DocumentTitle": "立普妥-碾碎服用 ",
  52. "EntityState": 2,
  53. "EntityKey": {
  54. "EntitySetName": "Document",
  55. "EntityContainerName": "MVCExampleEntities",
  56. "EntityKeyValues": [
  57. {
  58. "Key": "DocumentID",
  59. "Value": "a71ea30c-b544-41fa-b008-77adcf7a0250"
  60. }
  61. ],
  62. "IsTemporary": false
  63. }
  64. }
  65. ]
  66. },
  67. "JsonRequestBehavior": 0,
  68. "MaxJsonLength": null,
  69. "RecursionLimit": null
  70. }

三 、最后一个Json数据查看工具,很方便。
JSON Viewer

MVC中Json的使用:Controller中Json的处理的更多相关文章

  1. spring mvc中的service和controller中读取不到properties值

    根据web.xml读取配置文件中的顺序来看 controller层和service层来自于spring mvc.xml中读取,所以必须要在spring mvc.xml中配置读取资源文件夹方式

  2. 控制器controller与指令中的link、controller中变量作用域的关系

    angjualrjs中的作用域与原生js中的函数嵌套原理一致,都是存在作用域的继承.若在子控制器(同样包括在指令中的link或是controllerding中定义变量,此时指令中必须未使用scope独 ...

  3. ASP.NET MVC 前端(View)向后端(Controller)中传值

    在MVC中,要把前端View中的值传递给后端Controller, 主要有两种方法 1. 利用Request.Form 或者 Request.QueryString public ActionResu ...

  4. spring mvc Controller中使用@Value无法获取属性值

    在使用spring mvc时,实际上是两个spring容器: 1,dispatcher-servlet.xml 是一个,我们的controller就在这里,所以这个里面也需要注入属性文件 org.sp ...

  5. spring controller中@Value取不到applicationContext.xml中加载配置文件的问题

    原因还未查证: http://sunjun041640.blog.163.com/blog/static/256268322014127113844746/ 在使用spring mvc时,实际上是两个 ...

  6. 在Controller中添加事务管理

    文章参考了此博客: https://blog.csdn.net/qq_40594137/article/details/82772545 写这篇文章之前先说明一下: 1. Controller中添加事 ...

  7. ASP.NET MVC 学习1、新增Controller,了解MVC运行机制

    1,turorial ,根据链接教程新建一个MVC项目 http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/ ...

  8. 在MVC中使用Json.Net序列化和反序列化Json对象

    在.Net的MVC开发中,经常会使用到Json对象,于是,系统提供了JsonResult这个对象,其本质是调用.Net系统自带的Json序列化类JavaScriptSerializer对数据对象进行序 ...

  9. 在jfinal的Controller中接受json数据

    JFinal中接收URL中的参数或者model中的参数是很方便的,但是对于web2.0的网站来说,经常会以json方式提交比较复杂的数据,比如一个查询,包含了各种过滤条件和排序分页,前端脚本可能提交的 ...

  10. Ajax前台返回JSON数据后再Controller中直接转换成类型使用,后台接收json转成实体的方法

    之前写过一篇记录文章,写的是将一个比较复杂的数据结构在前台组合起来后传递到后台. 当时并不太了解@RequestBody,也并没有使用js提供的JSON.stringify()方法 所有都是自己写的, ...

随机推荐

  1. 如何参与一个 GitHub 开源项目?

    最近一年开源项目特别的热,很多技术大会或论坛都以开源项目作为主题进行探讨,可见这是一种趋势.而Github作为开源项目的著名托管地,可谓无 人不知,越来越多的个人和公司纷纷加入到Github的大家族里 ...

  2. java提高篇(二)-----理解java的三大特性之继承

    在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...

  3. 由ASP.NET所谓前台调用后台、后台调用前台想到HTTP——实践篇(二)

    在由ASP.NET所谓前台调用后台.后台调用前台想到HTTP——理论篇中描述了一下ASP.NET新手的三个问题及相关的HTTP协议内容,在由ASP.NET所谓前台调用后台.后台调用前台想到HTTP—— ...

  4. 可拖动的DIV续

    之前写过一篇可拖动的DIV讲如何实现可拖动的元素,最后提出了几点不足,这篇文章主要就是回答着三个问题 1. 浏览器兼容性 2. 边界检查 3. 拖动卡顿.失灵 先附上上次代码 <!DOCTYPE ...

  5. 生成格式化的json

    public static ContentResult returnJson(object obj) { var content = new ContentResult() { Content = J ...

  6. 【管理心得之三十八】如果“Q”不是高富帅,也吸引不了白富美“A”

    场景再现=========================={美剧片段}一位老人在电话亭中,一次又一次地向公用电话投硬币,但是每一次仅是接通后就自动掉线了.老人无奈之下寻求他人拨打报修电话,但苦等了许 ...

  7. fir.im Weekly - 94 个 iOS 开发资源推荐

    距离 2016 年还有 17 个日夜,而你和回家只隔了一张 12306 验证码的距离,祝大家抢票顺利.本期 fir.im Weekly 收集了一些优秀的 GitHub 源码.开发工具和动画特效,希望对 ...

  8. ui-router带参数的ui-sref配置

    ui-router带参数的ui-sref配置 路由 .state('app.user_edit', { url:'user/userid/:userid', templateUrl: 'compone ...

  9. ios app 打包上传 app store(Application Loader)

    背景:使用Xcode 上传APP, 这个 有时候很慢,构建版本需要等很长时间,所以我推荐使用Application Loader 1.使用xocd 打包,导出.ipa文件 2. OK ,跟着上面做, ...

  10. jxl写入excel实现数据导出功能

    @RequestMapping(params = "method=export", method = RequestMethod.GET) public void exportCo ...