博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
easyui webapi
阅读量:5238 次
发布时间:2019-06-14

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

今天算是踩雷了。。。。

先说一下,由于项目需要,我目前开发PO模块,

由于需要提供手机端,所以我在mvc项目中创建了  webapi。提供手机端调用。

然后我就考虑,easyui也使用webapi来提取数据。

好来,那么问题来了。。。。

我给大家看一下问题:

html--webapi

$('#tt').datagrid({        width: 'auto',        height: 300,        striped: true,        singleSelect: true,        method: 'Get',        url: 'Test/Get',        loadMsg: '数据加载……',        pagination: true,        rownumbers: true,        columns: [[            { field: 'PT_Name', title: 'PT_Name', align: 'center', width: 180 },            { field: 'PT_CreateTime', title: 'PT_CreateTime', align: 'center', width: 180 }        ]]    });
返回的数据:

"{"total": 1,"rows":[{"PT_ID":1,"PT_ParentID":0,"PT_Name":"鞋子","PT_Code":"Shoes","CompanyInfo_ID":null,"PT_CreateTime":null},{"PT_ID":2,"PT_ParentID":0,"PT_Name":"dfaz","PT_Code":"asfaf","CompanyInfo_ID":null,"PT_CreateTime":null}]}"

在看看html--ashx

$('#tt').datagrid({        width: 'auto',        height: 300,        striped: true,        singleSelect: true,        method: 'Get',        url: '/Ashx/Handler1.ashx',        loadMsg: '数据加载……',        pagination: true,        rownumbers: true,        columns: [[            { field: 'PT_Name', title: 'PT_Name', align: 'center', width: 180 },            { field: 'PT_CreateTime', title: 'PT_CreateTime', align: 'center', width: 180 }        ]]    });
返回的数据:

{"total": 1,"rows":[{"PT_ID":1,"PT_ParentID":0,"PT_Name":"鞋子","PT_Code":"Shoes","CompanyInfo_ID":null,"PT_CreateTime":null},{"PT_ID":2,"PT_ParentID":0,"PT_Name":"dfaz","PT_Code":"asfaf","CompanyInfo_ID":null,"PT_CreateTime":null}]}
细心的你,可能已经发现了、webapi会在最外面带双引号。导致easyui无法解析json!!!
后来的解决方案:
1  使用HttpResponseMessage 返回(这里还是使用webapi来返回,如果使用ashx,那么直接前面的代码就能搞定了)
public HttpResponseMessage Get()        {            string a = "{\"total\": 1,\"rows\":[{\"PT_ID\":1,\"PT_ParentID\":0,\"PT_Name\":\"鞋子\",\"PT_Code\":\"Shoes\",\"CompanyInfo_ID\":null,\"PT_CreateTime\":null},{\"PT_ID\":2,\"PT_ParentID\":0,\"PT_Name\":\"dfaz\",\"PT_Code\":\"asfaf\",\"CompanyInfo_ID\":null,\"PT_CreateTime\":null}]}";            var resp = new HttpResponseMessage { Content = new StringContent(a, System.Text.Encoding.UTF8, "application/json") };            return resp;        }
2  使用对象返回

public Rootobject Get()        {            Rootobject resp=new Rootobject();            //省略赋值            return resp;        }        public class Rootobject        {            public int total { get; set; }            public List
rows = new List
(); } public class Row { public int PT_ID { get; set; } public int PT_ParentID { get; set; } public string PT_Name { get; set; } public string PT_Code { get; set; } public object CompanyInfo_ID { get; set; } public object PT_CreateTime { get; set; } }
没有想到这么坑爹。。。。哎。记录一下,给大伙提个醒

ashx和 webapi都是

返回

string a = "{\"total\": 1,\"rows\":[{\"PT_ID\":1,\"PT_ParentID\":0,\"PT_Name\":\"鞋子\",\"PT_Code\":\"Shoes\",\"CompanyInfo_ID\":null,\"PT_CreateTime\":null},{\"PT_ID\":2,\"PT_ParentID\":0,\"PT_Name\":\"dfaz\",\"PT_Code\":\"asfaf\",\"CompanyInfo_ID\":null,\"PT_CreateTime\":null}]}";

也是研究不够深入,哎。后来才想起来。。。

不同的是,ashx其实通过HttpResponse返回,而webapi则直接返回 string

转载于:https://www.cnblogs.com/hanjun0612/p/9779894.html

你可能感兴趣的文章
梦断代码阅读笔记02
查看>>
selenium学习中遇到的问题
查看>>
[Linux]PHP-FPM与NGINX的两种通讯方式
查看>>
Java实现二分查找
查看>>
架构图-模型
查看>>
黑马程序员_Java基础枚举类型
查看>>
UIImage 和 iOS 图片压缩UIImage / UIImageVIew
查看>>
疯狂JAVA16课之对象与内存控制
查看>>
django ORM创建数据库方法
查看>>
php7 新特性整理
查看>>
RabbitMQ、Redis、Memcache、SQLAlchemy
查看>>
知识不是来炫耀的,而是来分享的-----现在的人们却…似乎开始变味了…
查看>>
口胡:[HNOI2011]数学作业
查看>>
数据库锁机制及乐观锁,悲观锁的并发控制
查看>>
03 线程池
查看>>
手机验证码执行流程
查看>>
设计模式课程 设计模式精讲 2-2 UML类图讲解
查看>>
Silverlight 的菜单控件。(不是 Toolkit的)
查看>>
初识lua
查看>>
jquery的contains方法
查看>>