webapi返回泛型给easyui
由于之前遇到的easyui调用webapi的问题。
参见 :http://blog.csdn.net/hanjun0612/article/details/51144991
所以就考虑,封装一个泛型用来返回 HttpResponseMessage
直接上代码:
泛型封装:
public class APIResult<T> : HttpResponseMessage
    {
        private T Data;
        public APIResult(T Data, string DataType = "application/json")
        {
            this.Data = Data;
            string jsonStr = GetJson(this.Data);
            this.Content = new StringContent(jsonStr, System.Text.Encoding.UTF8, DataType);
        }
//返回值
        public bool ResponseResult = false;
//返回message
        public string ResponseMsg = "failed";
        private string GetJson(T Data)
        {
            if (Data is string || Data is StringBuilder)
                return Data.ToString();
            else if (Data is DataTable)
                return JsonConvert.SerializeObject(Data, new DataTableConverter());
            else
                return JsonConvert.SerializeObject(Data);
        }
    }
webapi:
这里是返回DataTable类型
public APIResult<DataTable> GetProductParentType(string PT_Name=null, string PT_Code=null, int PT_ParentID = 0)
        {
            DataTable dt = pt.GetProductParentType(PT_Name, PT_Code,PT_ParentID);
            APIResult<DataTable> result = new APIResult<DataTable>(dt);
            return result;
        }
这里是返回对象类型
public APIResult<Rootobject> Get(int id)
        {
            Rootobject resp=new Rootobject();
            APIResult<Rootobject> api = new APIResult<Rootobject>(resp);
            return api;
        }
前台HTML :
<div id="gdv_ProductParentType"></div>
    <script>
        $('#gdv_ProductParentType').datagrid({
            url: '../api/BindData/GetProductParentType',
            method: 'get', //默认是post,不允许对静态文件访问
            width: '700',
            rownumbers: true,
            columns: [[
                { field: 'PT_Name', title: 'PT_Name' },
                { field: 'PT_CreateTime', title: 'PT_CreateTime',
                    formatter: function (value, row, index) {
                        var dt = new Date(value);
                        return dt.toLocaleDateString();//设置时间格式
                    }
                }
            ]],
            onClickRow: function (index, row) {
            },
            singleSelect: true,
            selectOnCheck: true
        });
    </script>												
											webapi返回泛型给easyui的更多相关文章
- WebApi返回Json格式字符串
		
WebApi返回json格式字符串, 在网上能找到好几种方法, 其中有三种普遍的方法, 但是感觉都不怎么好. 先贴一下, 网上给的常用方法吧. 方法一:(改配置法) 找到Global.asax文件,在 ...
 - WebAPI返回数据类型
		
最近开始使用WebAPI,上手很容易,然后有些疑惑 1.WebAPI默认返回什么数据类型,json还是xml? 2.怎么修改WebAPI的返回数据类型,我用IE浏览器请求返回的数据都是JSON格式的, ...
 - webapi返回json格式优化
		
一.设置webapi返回json格式 在App_Start下的WebApiConfig的注册函数Register中添加下面这代码 config.Formatters.Remove(config.For ...
 - WebAPI返回数据类型解惑
		
本文来自:http://www.cnblogs.com/lzrabbit/archive/2013/03/19/2948522.html 最近开始使用WebAPI,上手很容易,然后有些疑惑 1.Web ...
 - WebAPI返回数据类型解惑[转]
		
最近开始使用WebAPI,上手很容易,然后有些疑惑 1.WebAPI默认返回什么数据类型,json还是xml? 2.怎么修改WebAPI的返回数据类型,我用IE浏览器请求返回的数据都是JSON格式的, ...
 - webapi的返回类型,webapi返回图片
		
1.0 首先是返回常用的系统类型,当然这些返回方式不常用到.如:int,string,list,array等.这些类型直接返回即可. public List<string> Get() { ...
 - webapi返回json格式,并定义日期解析格式
		
1.webapi返回json格式 var json = config.Formatters.JsonFormatter; json.SerializerSettings.PreserveReferen ...
 - 关于webapi 返回的类型的笔记
		
经过测试发现使用IE浏览器返回的数据是json,而使用Firefox和Chrome返回的则为xml,经研究发现IE在发生http请求时请求头accpet节点相比Firefox和Chrome缺少&quo ...
 - Web Service接口返回泛型的问题(System.InvalidCastException: 无法将类型为“System.Collections.Generic.List`1[System.String]”的对象强制转换为类型“System.String[]”)
		
在使用C#写Web Service时遇到了个很奇怪的问题.返回值的类型是泛型(我用的是类似List<string>)的接口,测试时发现总是报什么无法转换为对象的错误,百思不得其解. 后来在 ...
 
随机推荐
- Java:内省(Introspector)
			
内省(Introspector) 是Java 语言对 JavaBean 类属性.事件的一种缺省处理方法. JavaBean是一种特殊的类,主要用于传递数据信息,这种类中的方法主要用于访问私有的字段,且 ...
 - Mac安装LNMP环境,升级php7
			
Mac安装nginx+mysql+php 安装nginx比较麻烦,要安装pcre ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre ...
 - Luogu4774 NOI2018 屠龙勇士 ExCRT
			
传送门 原来NOI也会出裸题啊-- 用multiset求出对付每一个BOSS使用的武器威力\(ATK_i\),可以得到\(m\)个式子\(ATK_ix \equiv a_i \mod p_i\) 看起 ...
 - 2-SAT超入门讲解
			
Preface 说实话2-SAT的题目我都没怎么做过,所以这里讲的都是些超入门什么的 还有一些板子题,由于是暑假的时候学的所以有些我也记不清了 主要学习参考自:Mancher的课件&& ...
 - Luogu P1896 [SCOI2005]互不侵犯
			
一道超级简单的状压DP题所以说状压是个好东西 看数据范围,同时我们发现一个格子要么放国王or不放,因此可以用二进制数来表示某一行的国王放置信息 于是我们马上想到用\(f_{i,j}\)表示放了前\(i ...
 - Linux Shell完成Qt程序的自动部署
			
#!/bin/sh #取当前脚本的绝对路径 srcDir=$(cd ")";pwd) #设置库所在路径 libDir=${srcDir}"/J1900RunLib/*&q ...
 - System.Data.SqlClient.SqlException:“对象名 'customer' 无效。"
			
连接数据库出错, 错误原因:表名错误.
 - Docker容器学习梳理 - 容器硬盘热扩容
			
前面已介绍了docker很多知识点的操作记录,今天这里梳理下docker容器空间扩展的操作.默认情况下,物理机下创建的docker容器的空间是10G(虚拟机下创建的docker容器空间就是虚拟机的空间 ...
 - require.ensure的用法;异步加载-代码分割;
			
webpack异步加载的原理 webpack ensure相信大家都听过.有人称它为异步加载,也有人说做代码切割,那这 个家伙到底是用来干嘛的?其实说白了,它就是把js模块给独立导出一个.js文件的, ...
 - S2X环境搭建与示例运行
			
S2X环境搭建与示例运行 http://dbis.informatik.uni-freiburg.de/forschung/projekte/DiPoS/S2X.html 环境 Maven proje ...