iT邦幫忙

2022 iThome 鐵人賽

DAY 19
0
自我挑戰組

用 30 天和 ASP.NET Core 打造一個活動報名管理系統系列 第 19

ASP.NET Core - 活動報名管理系統:Day19 將 CRUD 的前後端寫好 - 2

  • 分享至 

  • xImage
  •  

前言

昨天將新增、編輯以及讀取寫好了,今天就來將刪除做好,以及將欄位名稱 DisplayAttribute 都加好。

修改 Delete

Repository

寫到現在,對 Repository 的撰寫應該是越來越熟了,很快就可以將 Code 寫出來:

ViewModel

Controller

點選到 Delete 頁面,傳入 Event 的 ID,並用 ID 先從 Repository 撈出 Event 資料,並回傳到 View,但因為 View 目前使用的型別為 EventsDeleteViewModel,所以需要使用 AutoMapper Mapping 與轉型:

先使用 AutoMapper 將 EventsDeleteViewModel Mapping 到 Events,並傳到 Repository 的 DeleteEventAsync()

Display Attribute

至今建立了許多 ViewModel,總不可能一個一個將 DisplayAttribute 加到每一個 ViewModel 中吧,於是拜請了 Google 大神,發現 Stack Overflow 找到這篇文,方法為建立一個 BaseViewModel,並將欄位都放進去且加上 DisplayAttribute,然後原本做好的 ViewModel 都去繼承它:

BaseViewModel:

EventsDeleteViewModel:

因為 EventsBaseViewModel 基本上就是所有的 Events Model Property,所以 EventsDeleteViewModel 都需要註解,否則 EventsDeleteViewModel 會覆蓋掉 EventsBaseViewModel 的 Code(連同 Attribute),修改後來看看 Delete 頁面:

欄位名稱一次解決!

本日結語

今天總算將 CRUD 的功能都寫好了!喔不,其實還有一個圖片上傳沒有做到。不過這就是明天的內容了!
自己也在今天終於知道要如何設定一次 Attribute 就讓所有 ViewModel 都套用到,這在以前是不知道的!學到新的東西就好開心~?

那麼就明天見囉

Reference

MVC 4 Data Annotations "Display" Attribute


上一篇
ASP.NET Core - 活動報名管理系統:Day18 將 CRUD 的前後端寫好 - 1
下一篇
ASP.NET Core - 活動報名管理系統:Day20 圖片上傳功能
系列文
用 30 天和 ASP.NET Core 打造一個活動報名管理系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言