abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理四 (二十二)
abp(net core)+easyui+efcore实现仓储管理系统目录
abp(net core)+easyui+efcore实现仓储管理系统——abp总体介绍(一)
abp(net core)+easyui+efcore实现仓储管理系统——解决方案介绍(二)
abp(net core)+easyui+efcore实现仓储管理系统——领域层创建实体(三)
abp(net core)+easyui+efcore实现仓储管理系统——定义仓储并实现 (四)
abp(net core)+easyui+efcore实现仓储管理系统——创建应用服务(五)
abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之控制器(六)
abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之列表视图(七)
abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之增删改视图(八)
abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之菜单与测试(九)
abp(net core)+easyui+efcore实现仓储管理系统——多语言(十)
abp(net core)+easyui+efcore实现仓储管理系统——使用 webapi实现curd (十一)
abp(net core)+easyui+efcore实现仓储管理系统——菜单-上 (十六)
abp(net core)+easyui+efcore实现仓储管理系统——菜单-下(十七)
abp(net core)+easyui+efcore实现仓储管理系统——easyui前端页面框架 (十八)
abp(net core)+easyui+efcore实现仓储管理系统——easyui之货物管理一 (十九)
abp(net core)+easyui+efcore实现仓储管理系统——easyui之货物管理二 (二十)
从篇 abp(net core)+easyui+efcore实现仓储管理系统——easyui前端页面框架 (十八) 至abp(net core)+easyui+efcore实现仓储管理系统——easyui之货物管理三 (二十一) 为止,我们已经通过easyui完成了货物信息管理的前端与后台功能。现在我们运行起应用程序实测一下。
十一、浏览货物管理页面
1.在visual studio 2017中按f5运行应用程序。
2.在浏览器中的地址栏中输入“http://localhost:5000/”,然后输入管理员用户名进行登录。
3.在主界面的菜单中,选择“business->货物管理”菜单项,浏览器中呈现一个货物信息列表与四个按钮。如下图。关于菜单的生成可以参见文章(与 )。
4.数据库中有数据,却没有显示。我们在浏览器中按f12,查看一下返回的是什么结果?如下图。返回结果被abp封装了一下。
我们来看上图中红框所标示的结果中可以看出,其中result为代码中指定返回的数据。其他几个键值对是abp封装的,包含了是否认证、是否成功、错误信息,以及目标url。
5.我们不需要abp对json进行封装怎么办?很简单。只需要在方法上标记[dontwrapresult]
特性即可。这个特性其实是一个快捷方式用来告诉abp不要用abpjsonresult对我们的结果进行封装。
6. 在visual studio 2017的“解决方案资源管理器”中,右键单击在领域层“abp.tplms.web.mvc”项目中的controller目录。 找到cargocontroller文件,在list方法上添加[dontwrapresult]
特性。
7. 在visual studio 2017中按f5运行应用程序。登录之后,点击“[货物管理]”菜单,我们可以看到货物管理列表页面。abp是不再对json结果进行封装,界面中也能显示记录行了,但是记录行中没有数据。如下图。
十二、创建jsonhelper辅助类
我们在之前的测试货物信息管理功能时,看到货物管理列表页面中只显示了记录行,没有显示相关的数据。接下来我们来解决这个问题,我们需要一个j son的辅助类。
1. 在visual studio 2017的“解决方案资源管理器”中,右键单击在领域层“abp.tplms.web.core”项目,选择“添加” > “新建文件夹”。并重命名为“helpers”。
2. 在visual studio 2017的“解决方案资源管理器”中,鼠标右键单击“helpers”文件夹,然后选择“添加” > “类…”。 在“添加新项-abp.tplms.web.core”对话框中,选择“类”,并将名称命名为jsonheplerl。
3. 在我们刚才创建的jsonheplerl文件中,编写如下代码:
using newtonsoft.json; using newtonsoft.json.converters; using system; using system.collections.generic; using system.text; namespace abp.tplms.helpers { public class jsonhelper { private static jsonhelper _jsonhelper = new jsonhelper(); public static jsonhelper instance { get { return _jsonhelper; } } public string serialize(object obj) { return jsonconvert.serializeobject(obj, new isodatetimeconverter { datetimeformat = "yyyy-mm-dd hh:mm:ss" }); } public string serializebyconverter(object obj, params jsonconverter[] converters) { return jsonconvert.serializeobject(obj, converters); } public t deserialize<t>(string input) { return jsonconvert.deserializeobject<t>(input); } public t deserializebyconverter<t>(string input, params jsonconverter[] converter) { return jsonconvert.deserializeobject<t>(input, converter); } public t deserializebysetting<t>(string input, jsonserializersettings settings) { return jsonconvert.deserializeobject<t>(input, settings); } private object nulltoempty(object obj) { return null; } } }
十三、修改cargocontroller与tplmscontrollerbase
我们对(abp(net core)+easyui+efcore实现仓储管理系统——easyui之货物管理二 (二十) )文中所写方法jsoneasyui进行改造。
1. 在visual studio 2017的“解决方案资源管理器”中,右键单击在领域层“abp.tplms.web.core”项目中的controller目录。 找到tplmscontrollerbase文件,中的jsoneasyui方法,更新其中的代码。代码如下。
protected dynamic jsoneasyui(dynamic t,int total) { var obj= new { total = total, rows = t }; var json = abp.tplms.helpers.jsonhelper.instance.serialize(obj); return json; }
2. 在visual studio 2017的“解决方案资源管理器”中,右键单击在领域层“abp.tplms.web.mvc”项目中的controller目录。 找到cargocontroller.cs文件,修改list方法,如下代码。
[dontwrapresult] public string list() { var page = request.form["page"].tostring(); var size = request.form["rows"].tostring(); int pageindex = page == null ? 1 : int.parse(page); int pagesize = size == null ? 20 : int.parse(size); pagedcargoresultrequestdto paged = new pagedcargoresultrequestdto(); paged.maxresultcount = pagesize; paged.skipcount = ((pageindex-1)<0?0: pageindex - 1) * pagesize; var userlist = _cargoappservice.getall(paged).getawaiter().getresult().items; int total = 1000; var json = jsoneasyui(userlist,total); return json; }
3. 在visual studio 2017中按f5运行应用程序。登录之后,点击“[货物管理]”菜单,我们可以看到货物管理列表页面。如下图。
4.我们在浏览器中按f12,查看一下返回的是什么结果?如下图。返回结果没有被abp封装。
推荐阅读
-
abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理四 (二十二)
-
abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之一(二十七)
-
abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十五)
-
abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理三 (二十一)
-
abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十二)
-
abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之五(三十一)
-
abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之八(三十四)
-
abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理五 (二十三)
-
abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理八(二十六)
-
abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理六(二十四)