今天算是踩雷了。。。。

先说一下,由于项目需要,我目前开发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<Row> rows = new List<Row>();
} 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

easyui webapi的更多相关文章

  1. 我的权限系统设计实现MVC4 + WebAPI + EasyUI + Knockout(一)

    一.前言 之前的博客一直都还没写到框架的实现及权限系统,今天开始写我的权限系统,我以前做过的项目基本上都有权限管理这个模块,但各个系统都会有一些不太一样,有些简单点,有些稍微复杂一点,一句话,我们做的 ...

  2. 建筑材料系统 ASP.NET MVC4.0 + WebAPI + EasyUI + Knockout 的架构设计开发

    框架介绍: 1.基于 ASP.NET MVC4.0 + WebAPI + EasyUI + Knockout 的架构设计开发 2.采用MVC的框架模式,具有耦合性低.重用性高.生命周期成本低.可维护性 ...

  3. 我的权限系统设计实现MVC4 + WebAPI + EasyUI + Knockout(四)授权代码维护

    一.前言 权限系统设计中,授权代码是用来控制数据访问权限的.授权代码说白了只是一树型结构的数据,没有什么其它的业务意义.那么这个页面的功能也就非常简单授权代码维护:新增.修改.删除授权代码数据. 二. ...

  4. 我的权限系统设计实现MVC4 + WebAPI + EasyUI + Knockout(三)图形化机构树

    一.前言 组织机构是国内管理系统中很重要的一个概念,以前我们基本都是采用数据列表的形式展现,最多只是采用树形列表展现.虽然够用,但是如果能做成图形化当然是最好不过了.这里我不用任何图形控件,就用最原始 ...

  5. 我的权限系统设计实现MVC4 + WebAPI + EasyUI + Knockout(二)菜单导航

    一.前言 上篇博客中已经总体的说了一下权限系统的思路和表结构设计,那接下来我们就要进入正文了,先从菜单导航这个功能开始. 二.实现 这个页面基本不用什么需求分析了,大家都很明白,不过在这个页面要多维护 ...

  6. MVC4 + WebAPI + EasyUI + Knockout-授权代码维护

    我的权限系统设计实现MVC4 + WebAPI + EasyUI + Knockout(四)授权代码维护 一.前言 权限系统设计中,授权代码是用来控制数据访问权限的.授权代码说白了只是一树型结构的数据 ...

  7. 权限系统设计实现MVC4 + WebAPI + EasyUI + Knouckout

    权限系统设计实现MVC4 + WebAPI + EasyUI + Knouckout (一) 一.前言 之前的博客一直都还没写到框架的实现及权限系统,今天开始写我的权限系统,我以前做过的项目基本上都有 ...

  8. ASP.NET MVC4.0+ WebAPI+EasyUI+KnockOutJS快速开发框架 通用权限管理系统

    1.基于 ASP.NET MVC4.0 + WebAPI + EasyUI + Knockout 的架构设计开发 2.采用MVC的框架模式,具有耦合性低.重用性高.生命周期成本低.可维护性高.有利软件 ...

  9. 跨域WebApi的Jquery EasyUI的数据交互

    目录 1       大概思路... 1 2       创建WebAPI 1 3       创建CrossMainController并编写... 1 4       Nuget安装microso ...

随机推荐

  1. maven 插

    一.maven插件元素 <?xml version="1.0" encoding="utf-8"?> <plugin> <!--插 ...

  2. Your ApplicationContext is unlikely to start due to a @ComponentScan of the default package

    1.在搭建SpringBoot框架时碰到的问题. ** WARNING ** : Your ApplicationContext is unlikely to start due to a @Comp ...

  3. Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)...啊啊啊

    函数式编程 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计 ...

  4. Auto-ML之自动化特征工程

    1. 引言 个人以为,机器学习是朝着更高的易用性.更低的技术门槛.更敏捷的开发成本的方向去发展,且Auto-ML或者Auto-DL的发展无疑是最好的证明.因此花费一些时间学习了解了Auto-ML领域的 ...

  5. Logview_pro破解版

    logViewer Pro 是一款log文件查看器,它可以在短短数秒内打开上G的LOG文件,支持高亮某行文字(例如警告,错误),支持Unicode名字,支持查看的编码:ANSI, OEM, Unico ...

  6. Python_试题_23

    # Python基础数据类型考试题# 考试时间:两个半小时 满分100分(80分以上包含80分及格)# 一,基础题.# 1,简述变量命名规范(3分)# 答:变量名是由数字.字母.下划线任意组合,变量名 ...

  7. 网站响应式布局/网站自适应问题+rem、em、px、pt及网站字体大小设配

    Bootstrap 网格系统: Bootstrap CSS: Bootstrap 组件及插件: 一.什么是响应式布局?       响应式布局是Ethan Marcotte在2010年5月份提出的一个 ...

  8. oracle数据库添加新用户

    /*分为四步 */ /*第1步:创建临时表空间 */ create temporary tablespace kmyf_temp tempfile 'E:\app\pangxy\product\11. ...

  9. 11.14 Daily Scrum

    实现推荐菜谱时遇到问题,这个功能要和数据库和服务器有关,所以暂时放在一边,可能在beta版本实现. 部分成员已经完成基本任务,进行完善.   Today's Task Tomorrow's Task ...

  10. Week 3 有求必应

    [引] 必应词典已经伴我很久了,但那并不意味着我天天都用它查来查去,它总是静静地蹲在我E盘的一角. 从前的它特别任性,总喜欢开机自己冒出头来看我.后来我嫌它每天都播报新闻,于是就把它关进了冷宫.直到不 ...