ABP 初探 之基于EasyUI的CURD
2015-06-19 16:00
537 查看
结束了天天加班的项目,项目虽然结束,但还是有点小问题,只能在后期优化当中完成了,本次做项目采用了,MVC、Webapi、Entityframework,在园了里看到了有关ABP的介绍,同样ABP也是最新技术集合,就加入了 ABP架构设计交流群 134710707,一起探讨、学习与进步。
ABP的技术文档全是英文资料,不过现在不用担心了,群里的热心朋友已翻译成能看的懂语言了,详情
ABP 源代码地址 https://github.com/aspnetboilerplate
ABP的基本介绍就不讲了它是基于.net 4.5.1的,下载文档后自己了解吧,现在只讲解怎么用了
公司的项目是基于Easyui的,因此Demo也是基于EasyUI的,ABP的返回值不能满足Easyui的datagrid请求与显示,对Abp源码进行了部分修改,才能正常使用,具体修改会一一列出,给需要的朋友一点帮助。
ABP的请求值返回的对象属性首字母小写,这是因为默认的Json格式是 CamelCasePropertyNamesContractResolver ,只要把相关代码修改为
对应的类名:AbpWebApiModule
Easyui的Datagrid请求是通过URL传参数的,目前ABP不支持这种处理方法,因此只能自己在Controller里面写方法了,不能调用自动生成的WebAPi,多了一个步骤,下面是构造的分页类
JS 请求调用代码
View Code
项目结构如下
大家都喜欢源代码,F5直接运行,因此就写了个demo供大家参考
源码下载
设置 V.Market.Web 为启动项目
修改 web.config 的连接字符串
<add name="Default" connectionString="data source=.;initial catalog=Market;persist security info=True;user id=sa;password=Password!;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
有的园友没学习过EntityFramework,不知如何生成数据库,下介绍数据库的生成方法
通过命令生成数据库 update-database (需运行两次才能把数据写到数据库)
修改生成的数据 abpuser表 的 TenantId 修改成1
由于上传代码时,忘记修改登录的用户名了,因此需修改 HomeController的 登录用户名为 Admin
ABP的技术文档全是英文资料,不过现在不用担心了,群里的热心朋友已翻译成能看的懂语言了,详情
ABP 源代码地址 https://github.com/aspnetboilerplate
ABP的基本介绍就不讲了它是基于.net 4.5.1的,下载文档后自己了解吧,现在只讲解怎么用了
公司的项目是基于Easyui的,因此Demo也是基于EasyUI的,ABP的返回值不能满足Easyui的datagrid请求与显示,对Abp源码进行了部分修改,才能正常使用,具体修改会一一列出,给需要的朋友一点帮助。
ABP的请求值返回的对象属性首字母小写,这是因为默认的Json格式是 CamelCasePropertyNamesContractResolver ,只要把相关代码修改为
对应的类名:AbpWebApiModule
private static void InitializeFormatters() { GlobalConfiguration.Configuration.Formatters.Clear(); var formatter = new JsonMediaTypeFormatter(); formatter.SerializerSettings.ContractResolver = new DefaultContractResolver(); formatter.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; GlobalConfiguration.Configuration.Formatters.Add(formatter); GlobalConfiguration.Configuration.Formatters.Add(new PlainTextFormatter()); }
Easyui的Datagrid请求是通过URL传参数的,目前ABP不支持这种处理方法,因此只能自己在Controller里面写方法了,不能调用自动生成的WebAPi,多了一个步骤,下面是构造的分页类
public EasyUIPager GetPager(HttpRequestBase currentRequest) { EasyUIPager pager = new EasyUIPager(); if (currentRequest.Form["page"] != null) { pager.CurrentPage = int.Parse(currentRequest.Form["page"]); } if (currentRequest.Form["rows"] != null) { pager.PageSize = int.Parse(currentRequest.Form["rows"]); } pager.SortCloumnName = currentRequest.Form["sort"]; pager.SortOrder = currentRequest.Form["order"]; pager.Filter = currentRequest.Form["filter"]; return pager; }
JS 请求调用代码
$.ajax({ url: VE.AppPath + url, type: 'post', contentType: 'application/json', data: JSON.stringify({ Id: VE.Ids.join(','), IsActive: active }), dataType: 'json', success: function (r) { if (r.Success) { VE.MessageShow("操作成功"); VE.GridJudge(gridId, isLoad, gridType); } else { if (r.Error.Code == 0) { $.messager.alert('提示', r.Error.Message, "error"); } else if (r.Error.Code == 1) { $.messager.alert('提示', r.Error.Message, "info"); } else if (r.Error.Code == 2) { $.messager.alert('提示', r.Error.Message, "warn"); } else { $.messager.alert('提示', r.Error.Message, "error"); } } } });
View Code
项目结构如下
大家都喜欢源代码,F5直接运行,因此就写了个demo供大家参考
源码下载
设置 V.Market.Web 为启动项目
修改 web.config 的连接字符串
<add name="Default" connectionString="data source=.;initial catalog=Market;persist security info=True;user id=sa;password=Password!;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
有的园友没学习过EntityFramework,不知如何生成数据库,下介绍数据库的生成方法
通过命令生成数据库 update-database (需运行两次才能把数据写到数据库)
修改生成的数据 abpuser表 的 TenantId 修改成1
由于上传代码时,忘记修改登录的用户名了,因此需修改 HomeController的 登录用户名为 Admin
相关文章推荐
- iOS开发UI篇—CAlayer层的属性
- Uva - 12166 - Equilibrium Mobile
- IOS UITableViewCell 分割左对齐处理
- Uva - 12166 - Equilibrium Mobile
- 自定义Activity标题栏(Title bar)和窗体显示状态操作(requestWindowFeature()的应用)
- Android安装应用失败UID 和 PID
- HTML Dom querySelector
- MonkyTalk学习-5-TestSuite
- moqui框架介绍
- 传智播客网页平面UI入驻武汉校区
- WebUI-自用
- 清除Windows Genuine Advantage
- Qt5官方demo分析集10——Qt Quick Particles Examples - Emitters
- pip virtualenv requirements
- dojo.require()的相关理解
- ArrayDeque源码图析
- 自定义UITableViewCell
- Win10正式版7月29日将至 Build 10147全新壁纸先行
- iOS 改变UITextField中光标颜色
- 手写TextField的方法,让键盘放弃第一响应隐藏的方法