abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理六(二十四)

来源:https://www.cnblogs.com/chillsrc/archive/2019/10/31/11770233.html
-Advertisement-
Play Games

在上一篇 abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理五 (二十三) 文章中,我們修正了一些BUG,讓貨物信息管理的前端與後臺功能基本實現了我們所要。現在我們運行起應用程式看看新增功能。 ...


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之貨物管理三 (二十一) 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>0)
    {
        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(0, 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(0,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步。這次保存成功。見下圖。

 


 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言 系統異常監控可以說是重中之重,系統不可能一直運行良好,開發和運維也不可能24小時盯著系統,系統拋異常後我們應當在第一時間收到異常信息。在Asp.net Core里我使用攔截器和中間件兩種方式來監控異常。全局異常監控的數據最好還是寫入資料庫,方便查詢。 配置NLog NLog配置文件 註入NLo ...
  • 這次我們翻譯了一篇Unity官方博客上的文章,原文題目為AN INTRODUCTION TO IL2CPP INTERNALS ,作者是從事Unity軟體開發的Joshua Peterson。文章的看點在於,它是以IL2CPP內部開發人員的角度來講述的,所以對於開發者來說非常有參考價值。 AN IN ...
  • 前言 進入一個領域,最直接有效的方法就是,尋找相關綜述性文章,首先你需要對你入門的領域有個概括性的瞭解,這些包括: 1、主流的學習社區與網站。 2、該領域的知名大牛與熱心分享的從業者。 3、如何有效的激勵自己持續學習—主要是動手實踐 因此,總結一下Unity相關學習資源,可能有些不足,歡迎大家指正修 ...
  • Aspose.Email for .NET是一套完整的電子郵件處理控制項,用於構建跨平臺應用程式,無需使用Microsoft Outlook即可創建,操作,轉換和傳輸電子郵件。API提供電子郵件處理功能,例如添加,提取或刪除郵件對象中的附件,通過添加或刪除收件人或更改主題等來自定義郵件頭。 Aspos ...
  • Aspose.PDF for .NET是一種高級PDF處理和解析API,用於在跨平臺應用程式中執行文檔管理和操作任務。API可以輕鬆用於生成,修改,轉換,渲染,保護和列印PDF文檔,而無需使用Adobe Acrobat。此外,還提供PDF壓縮選項,表格創建和操作,圖形和圖像功能,廣泛的超鏈接功能,印 ...
  • dotnet core gRPC 原文在本人公眾號中,歡迎關註我,時不時的會分享一些心得 HTTP和RPC是現代微服務架構中很常用的數據傳輸方式,兩者有很多相似之處,但是又有很大的不同。HTTP是一種規範性、通用性、非常標準的傳輸協議,幾乎所有的語言都支持,如果要確保各平臺無縫銜接,可以考慮使用HT ...
  • static void Main(string[] args) { SystemTimersDemo(); Console.ReadLine(); } static void SystemTimersDemo() { System.Timers.Timer timer = new System.Ti... ...
  • VisualStudio2019下一個2.2另一個3.0頁面修改如下,但是3.0刷新沒有任何變化,難道VS以後不能做前端開發了?大家可能沒有看官方文檔 根據文章所說你需要: 1.安裝 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGet 包。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...