ABP開發手記11 - 展示層實現增刪改查-視圖

来源:https://www.cnblogs.com/IT-Evan/archive/2019/10/03/ABP11.html
-Advertisement-
Play Games

點這裡進入ABP開發手記目錄 創建目錄 在展示層(即JD.CRS.Web.Mvc)的Views下新建文件夾Course //用以存放Course相關視圖 創建視圖 在JD.CRS.Web.Mvc/Views/Course下新建兩個Razor視圖 查詢視圖 Index.cshtml //用於查詢Cou ...


點這裡進入ABP開發手記目錄 

創建目錄

在展示層(即JD.CRS.Web.Mvc)的Views下新建文件夾Course //用以存放Course相關視圖

創建視圖

在JD.CRS.Web.Mvc/Views/Course下新建兩個Razor視圖

查詢視圖

Index.cshtml //用於查詢Course List

  1 @using JD.CRS.Web.Startup
  2 @model JD.CRS.Web.Models.Course.CourseListViewModel
  3 @{
  4     ViewBag.CurrentPageName = PageNames.Course; // The menu item will be active for this page.
  5 }
  6 @section scripts
  7     {
  8     <environment names="Development">
  9         <script src="~/view-resources/Views/Course/Index.js" asp-append-version="true"></script>
 10     </environment>
 11     <environment names="Staging,Production">
 12         <script src="~/view-resources/Views/Course/Index.min.js" asp-append-version="true"></script>
 13     </environment>
 14 }
 15 <div class="row clearfix">
 16     <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
 17         <div class="card">
 18             <div class="header">
 19                 <h2>
 20                     @L("Course")
 21                 </h2>
 22                 <ul class="header-dropdown m-r--5">
 23                     <li class="dropdown">
 24                         <a href="javascript:void(0);" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
 25                             <i class="material-icons">more_vert</i>
 26                         </a>
 27                         <ul class="dropdown-menu pull-right">
 28                             <li>
 29                                 <a id="RefreshButton" href="javascript:void(0);" class="waves-effect waves-block"><i class="material-icons">refresh</i>@L("Refresh")</a>
 30                             </li>
 31                         </ul>
 32                     </li>
 33                 </ul>
 34             </div>
 35             <div class="body table-responsive">
 36                 <table class="table">
 37                     <thead>
 38                         <tr>
 39                             <th>@L("Code")</th>
 40                             <th>@L("DepartmentCode")</th>
 41                             <th>@L("Name")</th>
 42                             <th>@L("Credits")</th>
 43                             <th>@L("Remarks")</th>
 44                             <th>@L("Status")</th>
 45                             <th>@L("Actions")</th>
 46                         </tr>
 47                     </thead>
 48                     <tbody>
 49                         @foreach (var item in Model.Courses)
 50                         {
 51                         <tr>
 52                             <td>
 53                                 @Html.DisplayFor(modelItem => item.Code)
 54                             </td>
 55                             <td>
 56                                 @Html.DisplayFor(modelItem => item.DepartmentCode)
 57                             </td>
 58                             <td>
 59                                 @Html.DisplayFor(modelItem => item.Name)
 60                             </td>
 61                             <td>
 62                                 @Html.DisplayFor(modelItem => item.Credits)
 63                             </td>
 64                             <td>
 65                                 @Html.DisplayFor(modelItem => item.Remarks)
 66                             </td>
 67                             <td>
 68                                 @Html.DisplayFor(modelItem => item.Status)
 69                             </td>
 70                             <td class="dropdown">
 71                                 <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
 72                                     <i class="material-icons">menu</i>
 73                                 </a>
 74                                 <ul class="dropdown-menu pull-right">
 75                                     <li><a href="#" class="waves-effect waves-block edit-course" data-course-id="@item.Id" data-toggle="modal" data-target="#CourseEditModal"><i class="material-icons">edit</i>@L("Edit")</a></li>
 76                                     <li><a href="#" class="waves-effect waves-block delete-course" data-course-id="@item.Id" data-course-name="@item.Name"><i class="material-icons">delete_sweep</i>@L("Delete")</a></li>
 77                                 </ul>
 78                             </td>
 79                         </tr>
 80                         }
 81                     </tbody>
 82                 </table>
 83                 <button type="button" class="btn btn-primary btn-circle waves-effect waves-circle waves-float pull-right" data-toggle="modal" data-target="#CourseCreateModal">
 84                     <i class="material-icons">add</i>
 85                 </button>
 86             </div>
 87         </div>
 88     </div>
 89 </div>
 90 <div class="modal fade" id="CourseCreateModal" tabindex="-1" role="dialog" aria-labelledby="CourseCreateModalLabel" data-backdrop="static">
 91     <div class="modal-dialog" role="document">
 92         <div class="modal-content">
 93             <div class="modal-header">
 94                 <h4 class="modal-title">
 95                     <span>@L("CreateCourse")</span>
 96                 </h4>
 97             </div>
 98             <div class="modal-body">
 99                 <form name="courseCreateForm" role="form" class="form-validation">
100                     <div>
101                         <div class="row clearfix">
102                             <div class="col-sm-6">
103                                 <div class="form-line">
104                                     <label class="form-label">@L("Code")</label>
105                                     <input type="text" name="Code" class="form-control" required maxlength="50" />
106                                 </div>
107                             </div>
108                             <div class="col-sm-6">
109                                 <div class="form-line">
110                                     <label class="form-label">@L("DepartmentCode")</label>
111                                     <input type="text" name="DepartmentCode" class="form-control" required maxlength="50" />
112                                 </div>
113                             </div>
114                         </div>
115                         <div class="row clearfix">
116                             <div class="col-sm-6">
117                                 <div class="form-line">
118                                     <label class="form-label">@L("Name")</label>
119                                     <input type="text" name="Name" class="form-control" required maxlength="150" />
120                                 </div>
121                             </div>
122                             <div class="col-sm-6">
123                                 <div class="form-line">
124                                     <label class="form-label">@L("Credits")</label>
125                                     <input type="text" name="Credits" class="form-control"/>
126                                 </div>
127                             </div>
128                         </div>
129                         <div class="row clearfix">
130                             <div class="col-sm-12">
131                                 <div class="form-line">
132                                     <label class="form-label">@L("Remarks")</label>
133                                     <input name="Remarks" type="text" class="form-control" required maxlength="200" />
134                                 </div>
135                             </div>
136                         </div>
137                         <div class="row clearfix">
138                             <div class="col-sm-12">
139                                 <div class="form-line">
140                                     <label class="form-label">@L("Status")</label>
141                                     <input name="Status" type="text" class="form-control" />
142                                 </div>
143                             </div>
144                         </div>
145                     </div>
146                     <div class="modal-footer">
147                         <button type="button" class="btn btn-default waves-effect" data-dismiss="modal">@L("Cancel")</button>
148                         <button type="submit" class="btn btn-primary waves-effect">@L("Save")</button>
149                     </div>
150                 </form>
151             </div>
152         </div>
153     </div>
154 </div>
155 <div class="modal fade" id="CourseEditModal" tabindex="-1" role="dialog" aria-labelledby="CourseEditModalLabel" data-backdrop="static">
156     <div class="modal-dialog" role="document">
157         <div class="modal-content">
158         </div>
159     </div>
160 </div>
Index 

創建/修改視圖

_EditCourseModal.cshtml //用於創建/修改Course Item

 1 @using JD.CRS.Web.Models.Common.Modals
 2 @model JD.CRS.Web.Models.Course.EditCourseModalViewModel
 3 @{
 4     Layout = null;
 5 }
 6 @Html.Partial("~/Views/Shared/Modals/_ModalHeader.cshtml", new ModalHeaderViewModel(L("EditCourse")))
 7 
 8 <div class="modal-body">
 9     <form name="CourseEditForm" role="form" novalidate class="form-validation">
10         <input type="hidden" name="Id" value="@Model.Course.Id" />
11         <div>
12             <div class="row clearfix">
13                 <div class="col-sm-6">
14                     <div class="form-line">
15                         <label class="form-label">@L("Code")</label>
16                         <input type="text" name="Code" value="@Model.Course.Code" class="form-control" required maxlength="50" />
17                     </div>
18                 </div>
19                 <div class="col-sm-6">
20                     <div class="form-line">
21                         <label class="form-label">@L("DepartmentCode")</label>
22                         <input type="text" name="DepartmentCode" value="@Model.Course.DepartmentCode" class="form-control" required maxlength="50" />
23                     </div>
24                 </div>
25             </div>
26             <div class="row clearfix">
27                 <div class="col-sm-6">
28                     <div class="form-line">
29                         <label class="form-label">@L("Name")</label>
30                         <input type="text" name="Name" value="@Model.Course.Name" class="form-control" required maxlength="150" />
31                     </div>
32                 </div>
33                 <div class="col-sm-6">
34                     <div class="form-line">
35                         <label class="form-label">@L("Credits")</label>
36                         <input type="text" name="Credits" value="@Model.Course.Credits" class="form-control"/>
37                     </div>
38                 </div>
39             </div>
40             <div class="row clearfix">
41                 <div class="col-sm-12">
42                     <div class="form-line">
43                         <label class="form-label">@L("Remarks")</label>
44                         <input name="Remarks" type="text" value="@Model.Course.Remarks" class="form-control" required maxlength="200" />
45                     </div>
46                 </div>
47             </div>
48             <div class="row clearfix">
49                 <div class="col-sm-12">
50                     <div class="form-line">
51                         <label class="form-label">@L("Status")</label>
52                         <input name="Status" type="text" value="@Model.Course.Status" class="form-control" />
53                     </div>
54                 </div>
55             </div>
56 </form>
57 </div>
58 @Html.Partial("~/Views/Shared/Modals/_ModalFooterWithSaveAndCancel.cshtml")
59 
60 <script src="~/view-resources/Views/Course/_EditCourseModal.js" asp-append-version="true"></script>
_EditCourseModal

 


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

-Advertisement-
Play Games
更多相關文章
  • Python解釋器安裝與環境變數調試 Python解釋器安裝(3.6): www.python.org這個是python解釋器的官網,一定要牢記。 鑒於市場上有兩種python版本(2和3),今天兩種版本都裝一下,互相學習,如有錯誤還請各位評論指正。 ![img](https://img2018.c ...
  • 1、Java常用容器:List,Set,Map List: 繼承了Collection介面(public interface List<E> extends Collection<E> ),有序且允許出現重覆值。 Set: 繼承了Collection介面(public interface Set<E ...
  • java作用域public private protected 不寫 friendly的區別? public:可以被任何類引用。 protected:除了其他包不能使用,當前類,子孫類,同一包下的所有類都可 以使用。 friendly:不寫時,子孫類和其他包不能使用,當前類,同一包下都可以使用。 p ...
  • #!/usr/bin/env python# -*- coding:utf-8 -*-Product_List = [ ('Iphone11',200), ('HUA WEI Mate 30',200), ('Pythoon基礎教程',80), ('Coffee',30) ]Buy_List = [ ...
  • [TOC] 1.中間件介紹 1.1什麼是中間件? 官方的說法:中間件是一個用來處理Django的請求和響應的框架級別的鉤子。它是一個輕量、低級別的插件系統,用於在全局範圍內改變Django的輸入和輸出。每個中間件組件都負責做一些特定的功能。 但是由於其影響的是全局,所以需要謹慎使用,使用不當會影響性 ...
  • 一.多APP 二.flask admin 安裝 簡單使用 將表模型註冊到admin中 如果有個欄位是圖片指端 ...
  • 她是個很優秀的女生,不得不說我都覺得她很強大。因為我所瞭解,男生能做能擔當起來的事,她都是可以做到以及做過更優秀的那種(有事例,但不方便講)。 但是她喜歡女生,搞了一個對象是女生。嗯,今天國慶她倆一起來我家吃飯。然後就突然感覺到她一直像個男孩子一樣對那個女生,她說什麼做什麼都很照顧那個女孩子,看起來 ...
  • 點這裡進入ABP開發手記目錄 創建目錄 在展示層(即JD.CRS.Web.Mvc)的\wwwroot\view-resources\Views\下新建文件夾Course //用以存放Course相關腳本 創建腳本 在JD.CRS.Web.Mvc\wwwroot\view-resources\View ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...