博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# MVC中返回JSON 对象
阅读量:6830 次
发布时间:2019-06-26

本文共 2472 字,大约阅读时间需要 8 分钟。

hot3.png

public class JsonNetResult : ActionResult{  public Encoding ContentEncoding { get; set; }  public string ContentType { get; set; }  public object Data { get; set; }   public JsonSerializerSettings SerializerSettings { get; set; }  public Formatting Formatting { get; set; }   public JsonNetResult()  {    SerializerSettings = new JsonSerializerSettings();  }   public override void ExecuteResult(ControllerContext context)  {    if (context == null)      throw new ArgumentNullException("context");     HttpResponseBase response = context.HttpContext.Response;     response.ContentType = !string.IsNullOrEmpty(ContentType)      ? ContentType      : "application/json";     if (ContentEncoding != null)      response.ContentEncoding = ContentEncoding;     if (Data != null)    {      JsonTextWriter writer = new JsonTextWriter(response.Output) { Formatting = Formatting };       JsonSerializer serializer = JsonSerializer.Create(SerializerSettings);      serializer.Serialize(writer, Data);       writer.Flush();    }  }}

This is an ActionResult I wrote to return JSON from  to the browser using .

The benefit of using JsonNetResult over the built in JsonResult is you get a better serializer (IMO [:)]) and all the other benefits of Json.NET like nicely formatted JSON text.

http://james.newtonking.com/json/help/index.html

使用

public JsonNetResult Edit(String elementID, String tableName, String idInElementDetail)        {            BookElement be = new BookElement();            String inputTemplate = be.getInputTemplateStringByID(elementID, Server.MapPath("~"));            JObject outObject = new JObject();            outObject.Add("inputTemplate",new JValue(inputTemplate));            ElementInPage el = new ElementInPage();            DataTable eData = el.getElementInPageDetail(tableName, idInElementDetail);            JObject dataObject = new JObject();            foreach (DataRow eRow in eData.Rows)            {                foreach (DataColumn eCol in eData.Columns)                {                    dataObject.Add(eCol.ColumnName,new JValue(eRow[eCol].ToString()));                }            }            outObject.Add("elementData",dataObject);            Debug.WriteLine("outdata:" + outObject.ToString());            JsonNetResult jsonNet = new JsonNetResult();            jsonNet.Data = outObject;            return jsonNet;        }
另外一种 就是JsonResult,这个是这个NewTon JSON包本身就支持的,但这个一般是从Model序列化而来。

转载于:https://my.oschina.net/xiaohelong/blog/366924

你可能感兴趣的文章
archlinux使用sudo
查看>>
Hibernate 一对一映射(惟一外键)
查看>>
Spring + iBatis 的多库横向切分简易解决思路
查看>>
PS拾色器(前景色背景色)快捷键
查看>>
Composer帮你轻松管理PHP包 autoload
查看>>
poj 2914(stoer_wanger算法求全局最小割)
查看>>
搭建交叉编译环境
查看>>
linux下tar压缩/解压的使用(tar) 压缩/解压
查看>>
菜单each+hover
查看>>
乐观锁和悲观锁【转】
查看>>
抵制长假,呼唤年假!
查看>>
Linux的安装
查看>>
修復 “Failed to bring up eth0″ in Ubuntu virtualbox
查看>>
发现linux主机再用代理上网的情况下不能用wget从外网下载资源
查看>>
查找链表中倒数第k个结点
查看>>
不只是技术!成为IT经理必备的十大软技能
查看>>
基于AgileEAS.NET SOA 平台SAAS架构技术的开源分销ERP系统-SmartERP.NET下载配置说明
查看>>
16个时髦的扁平化设计的 HTML5 & CSS3 网站模板
查看>>
c++工厂模式(Factory method)
查看>>
[RGEOS]空间拓扑关系
查看>>