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实现仓储管理系统——EasyUI前端页面框架 (十八)

abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理一 (十九)

abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理二 (二十)

 
 

在上一篇 abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理五 (二十三)文章中,我们修正了一些BUG,让货物信息管理的前端与后台功能基本实现了我们所要。现在我们运行起应用程序看看新增功能。

十五、新增货物信息

继续来实现我们的货物信息管理功能,之前我们已经实现了列表功能,现在我们来实现货物信息的增加功能。

1. 在Visual Studio 2017的“解决方案资源管理器”中,右键单击在领域层“ABP.TPLMS.Web.Core”项目中的Controller目录。 找到TPLMSControllerBase文件,添加一个新的方法JsonEasyUIResult。此方法用来实现当我们完成了增加货物信息之后,返回给前端相关信息。代码如下。

protected dynamic JsonEasyUIResult(int id,string result)
{ string strId = string.Empty;
if (id>)
{
strId = id.ToString();
} var obj = new
{
result = result,
Id = strId
};
var json = ABP.TPLMS.Helpers.JsonHelper.Instance.Serialize(obj);
return json;
}

2. 在Visual Studio 2017的“解决方案资源管理器”中,右键单击在展示层“ABP.TPLMS.Web.Mvc”项目中的Controller目录。 找到CargoController文件,添加一个新增方法,代码如下。

 public ActionResult Add(CargoDto createDto)
{
var json = string.Empty;
string result = "NO";
if (createDto == null)
{
json = JsonEasyUIResult(, result);
return Content(json); }
try
{
var cargo = ObjectMapper.Map<CreateUpdateCargoDto>(createDto); // TODO: Add logic here
var obj = _cargoAppService.Create(cargo);
int id = obj.GetAwaiter().GetResult().Id;
if (obj != null)
{
json = JsonEasyUIResult(id, "OK"); }
else {
json = JsonEasyUIResult(,result); }
}
catch {
}
return Content(json); }

3.在Visual Studio 2017中按F5运行应用程序。

4.在浏览器中的地址栏中输入“http://localhost:5000/”,然后输入管理员用户名进行登录。

5.在主界面的菜单中,选择“Business->货物管理”菜单项,浏览器中呈现一个货物信息列表与四个按钮。如下图。关于菜单的生成可以参见文章(abp(net core)+easyui+efcore实现仓储管理系统——菜单-上 (十六)与 abp(net core)+easyui+efcore实现仓储管理系统——菜单-下(十七))。

6.新增货物:点击“添加”按钮,弹出一个“添加货物”的操作界面,如下图中所示。

7.在输入相应的货物信息之后,点击“保存”按钮 。在弹出的确认对话框中点击“确定”按钮。在弹出的“保存成功”确认对话框中点击“确定”按钮。

8.然后系统就没有任何反应,没有弹出任何提示信息,查询数据也没有发现添加新数据。我们在浏览器中按F12,然后发现原来报错了。如下图。

具体错误信息如下:

An unhandled exception occurred while processing the request.

AbpValidationException: Method arguments are not valid! See ValidationErrors for details.

Abp.Runtime.Validation.Interception.MethodInvocationValidator.ThrowValidationError() in MethodInvocationValidator.cs, line 118

9.原来是ABP的一个校验异常。ABP的两个特性EnableValidation和DisableValidation 用来控制validation。我们在Add方法上面添加两个特性[HttpPost]与[DisableValidation]。

[HttpPost]
[DisableValidation]
public ActionResult Add(CargoDto createDto) {… 代码见第2步。}

10.重新从第3步到第7步。这次保存成功。见下图。

最新文章

  1. requirejs:研究笔记
  2. iOS中的小知识点
  3. 【大数比较】NYOJ-73
  4. jemalloc源码结构分析(三):arena_malloc_small内存分布
  5. Android Activity的生命周期详解
  6. 【实习记】2014-09-04浏览代码查middle资料+总结我折腾过的源码浏览器
  7. JVM学习001通过实例总结Java虚拟机的运行机制
  8. linux内核链表的使用
  9. Golang随机数生成
  10. Windows 远程桌面剪贴板失效的处理办法
  11. [agc016B][Colorful Hats]
  12. hihocoder1323 回文字符串(区间dp)
  13. ionic ion-tab图标修改, 自定义tab图标
  14. C#中的double类型数据向SQL sqerver 存储与读取问题
  15. Day 13 可迭代对象,迭代器对象,for循环迭代,生成器对象,枚举对象
  16. python 爬虫启航2.0
  17. C#中按模板操作Word —— 如何向Word中插入图片
  18. liferay增删改简单小练习
  19. 2018.07.22 洛谷P4316 绿豆蛙的归宿(概率dp)
  20. GIT理解

热门文章

  1. CentOS7下LVM的基本操作
  2. java Mail如何发送邮件
  3. C++进程间通讯方式
  4. 09.Django基础七之Ajax
  5. Spring boot 梳理 - 全局配置文件application.properties或者是application.yml,在resources目录下或者类路径下的/config下,一般我们放到resources下。
  6. Linux 查看端口状态netstat
  7. (三)分布式数据库tidb-隔离级别详解
  8. Kafka 异步消息也会阻塞?记一次 Dubbo 频繁超时排查过程
  9. 特殊的ARP
  10. (4)一起来看下mybatis框架的缓存原理吧