事情是这样的:我在MVC 下 前后台交互 用JsonResult 返回给前台使用。

public JsonResult AjaxFindHospitalInfo()
{

  List<T> list = new List<T>

  return Json(list,JsonRequestBehavior.AllowGet);

}

但是在对EXTJS4.0 使用grid 使用分页功能的时候 需要把一个数据总行数一起写进JSON

{totalCount:" + 数据总行数+ ",bugs: " + JSON分页后的数据 + "}";

要把数据总行数回传给组件。

我想到几个办法:

1. 改写LIST《T》 在list<t> 改为 list<list<T>> 最外层List 写入totalCount:  数据总行数,bugs : list<T>

list<list<T>> =  {totalCount:  数据总行数,bugs : list<T>} 这样就可以直接通过"Json" 这个函数序列化

2. 通过另外一个Ajax请求 取得 数据总行数,或 通过 ViewBag 传值,到前台 用 JS 取到 赋给 totalCount

事实上我用的第三种方法: ps:虽然我认为第二种方法 简单 方便

3.取得Json 字符串 增加 字符串重新拼接成: {totalCount:" + 数据总行数+ ",bugs: " + JSON分页后的数据 + "}";

但是Json 函数 返回的是JsonResult 没有函数能直接返回 字符串

网上找方法:重写JsonResult

其中用到了这样一个  JavaScriptSerializer 这个对象有个函数 Serialize 可以把 List 序列化后返回 string

通过 ContentResult 返回 Content(content),代码如下:

public ContentResult AjaxFindHospitalInfo()
{

int start = Convert.ToInt32(Request.Params["start"] == null ? "0" : Request.Params["start"]);//从多少条开始
int limit = Convert.ToInt32(Request.Params["limit"] == null ? "10" : Request.Params["limit"]);//分页页数

Hospital_DAL hd = new Hospital_DAL();
JavaScriptSerializer jss = new JavaScriptSerializer();
string content = jss.Serialize(hd.FindHos(start, limit)); //hd.FindHos() 函数返回 LIST 集合

int count = hd.FindHosCount();
content = "{totalCount:" + count + ",bugs: " + content + "}";

return Content(content);
}

MVC4.0 JSON JsonResult 序列化之后 对JSON 进行修改 EXTJS4.0 分页的更多相关文章

  1. JsonResult序列化并保存json文件 以及对json文件读取反序列

    项目中我们经常遇到一些经常访问的接口,并且更新及时度不是特别高,那么我们可以利用文件来做一些数据请求的缓存. 这里以微信公众号获取粉丝用户列表为例,我们把微信公众号查到的用户先缓存在文件中,这样在翻页 ...

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

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

  3. Json和序列化总结

    一.序言 遇到问题,就经常逛园,不知你是否曾有,曾经遇到的问题,或者在园子里看到问题的方案,过一段时间,有可能还会摔跤,哈哈...大神请勿喷,小弟记忆不太好,还过来找资料,如果自己写把问题或某个知识点 ...

  4. flutter json_annotation和json_serializable处理json数据序列化

    flutter json_annotation和json_serializable处理json数据序列化 导包 dependencies: json_annotation: ^2.4.0 dev_de ...

  5. Asp.Net Core 2.0 项目实战(8)Core下缓存操作、序列化操作、JSON操作等Helper集合类

    本文目录 1.  前沿 2.CacheHelper基于Microsoft.Extensions.Caching.Memory封装 3.XmlHelper快速操作xml文档 4.Serializatio ...

  6. 在Asp.Net Core 3.0中如何使用 Newtonsoft.Json 库序列化数据

    在.Net Core 3.0中 内置了一套Json序列化/反序列化方案,默认可以不再依赖,不再支持   Newtonsoft.Json. 但是.NET Core 3.0 System.Text.Jso ...

  7. [MVC_Json序列化]MVC之Json序列化循环引用

    在做MVC项目时,难免会遇到Json序列化循环引用的问题,大致错误如下 错误1:序列化类型为“...”的对象时检测到循环引用. 错误2:Self referencing loop detected f ...

  8. 超越 JSON: Spearal 序列化协议简介

      Spearal 是一个新的开源的序列化协议,这个协议旨在初步替换JSON 将HTML和移动应用连接到Java的后端. Spearal的主要目的是提供一个序列协议,这个协议即使是在端点间传输的复杂的 ...

  9. [.net 面向对象程序设计进阶] (13) 序列化(Serialization)(五) Json 序列化利器 Newtonsoft.Json 及 通用Json类

    [.net 面向对象程序设计进阶] (13) 序列化(Serialization)(五) Json 序列化利器 Newtonsoft.Json 及 通用Json类 本节导读: 关于JSON序列化,不能 ...

随机推荐

  1. java XML 通过BeanUtils的population为对象赋值 根据用户选择进行dom4j解析

    根据xml文件设计Student对象 <?xml version="1.0" encoding="UTF-8"?> <students> ...

  2. Maven学习总结(10)

    本文通过一个例子来介绍利用maven来构建一个多模块的jave项目.开发工具:intellij idea. 一.项目结构 multi-module-project是主工程,里面包含两个模块(Modul ...

  3. 【PHP】nl2br转化输出input框的换行

    在input或者textarea框中输入的换行符保存到数据库是/n,如果直接输出到前端的话是不会有换行的,所以要用到nl2br转化 nl2br($test);

  4. vue命令集合

    创建vuecli脚手架:npm install -g @vue/cli拉取2的版本:npm install -g @vue/cli-init 创建webpack:npm i webpack@3.12. ...

  5. WPF点击不同界面上的按钮实现界面切换

    原文:WPF点击不同界面上的按钮实现界面切换 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_29844879/article/details/ ...

  6. c语言的左移、右移

    先说左移,左移就是把一个数的所有位都向左移动若干位,在C中用<<运算符.例如: int i = 1; i = i << 2;  //把i里的值左移2位 也就是说,1的2进制是0 ...

  7. latex排版系统

    proTeXt - MiKTeX-based distribution for Windows proTeXt aims to be an easy-to-install TeX distributi ...

  8. 项目中自己觉得比较好的Erlang语法

    1.Lists 中处理合并Key相同的Tuple CashInfo1 = [{?PAY_TYPE_YUANBAO, NeedYuanBao + OldNeedYuanbao}|lists:keydel ...

  9. Jenkins拾遗--第一篇(安装Jenkins)

    起因 近期由于工作需要做起了起了jenkins的维护.不做不知道,一搞发现里边全是小坑.两个月弄了一身泥.曾经小瞧了它,但是发现其实要弄好它不是那么容易的.有句知名的话"没有总结就没有提高. ...

  10. Activiti入门 -- 环境搭建和核心API简介

    相关文章: <史上最权威的Activiti框架学习指南> <Activiti入门 -- 轻松解读数据库> 本章内容,主要讲解Activiti框架环境的搭建,能够使用Activi ...