Create() 和 Edit() 這兩個 Action 方法主要是用來導向到真正的資料新增或修改頁面。
它們會呼叫 CreateEdit() 方法,並傳入不同的 id 值:
id = 0 代表新增
id > 0 代表修改
2. 資料取得與顯示 (CreateEdit - GET)
CreateEdit() 方法會根據傳入的 id 值,從資料庫中取得對應的員工資料。
z_sqlEmployees 類別應該是一個資料存取層的類別,負責與資料庫互動。
GetDataAsync() 方法會非同步地從資料庫取得資料,並將結果放到 model 變數中。
最後,將 model 傳給 View,讓 View 呈現出對應的表單。
3. 資料驗證與儲存 (CreateEdit - POST)
ModelState.IsValid 用來檢查使用者輸入的資料是否符合模型的驗證規則。
dpr.IsDuplicated() 用來檢查使用者輸入的員工編號是否已經存在。
如果驗證通過,則呼叫 CreateEditAsync() 方法將資料存入資料庫。
CreateEditAsync() 方法應該會根據 id 值來決定是執行新增還是修改的 SQL 指令。
4. 取得縣市鄉鎮區資料 (GetCityAreaList)
GetCityAreaList() 方法用來取得指定縣市的鄉鎮區資料,通常會用在下拉式選單的動態載入。
z_sqlCityAreas 類別應該是一個負責查詢縣市鄉鎮區資料的類別。
GetDropDownList() 方法會取得對應的鄉鎮區資料,並轉換成適合下拉式選單的格式。
整體流程
使用者點選「新增」或「修改」按鈕。
程式導向到 CreateEdit() 方法,並根據 id 值取得對應的資料。
畫面顯示新增或修改的表單。
使用者填寫完表單後送出。
程式驗證使用者輸入的資料。
如果驗證通過,則將資料存入資料庫。
最後導向到員工資料列表頁面。
補充說明
z_sqlEmployees 和 z_sqlCityAreas 應該都是自定義的類別,用來封裝對資料庫的操作。
DapperRepository 可能是另一個資料存取層的類別,用來執行一些特定的 SQL 指令。
async/await 是 C# 的非同步程式設計語法,用來處理耗時的操作,例如資料庫查詢。
JsonResult 是 ASP.NET MVC 的一個結果類型,用來返回 JSON 格式的資料,通常用在 AJAX 請求。