本篇在說明如何使用Dynamic Data 專案預設範本後,如何客製化Error Message。
首先我們建立一個Dynamic Data專案,如下圖:
我們打開專案瀏覽,其目錄層次如下圖,然後我們以Northwind資料庫為例,建立一個名為Northwind的實體資料模型。
這樣就完成了,目前還沒修改到任何程式,然後我們Compile本專案,下圖為Compile後的第一頁,其中如Products,Customers等等就是我們在Northwind的實體資料模型中,所選擇要連結的資料表。

我們選擇Edit這筆資料。

Default Error Message
我們在UnitPrice這個欄位輸入A,因為這個欄位型態應該為數值,故目前輸入的A是字串,所以系統會顯示預設的欄位驗證後的Error Message「欄位UnitPrice必須是有效的十進位數」,如下圖:

如何Customize Error Message
接下來我們要客製化上面所提到的Error Message(Cuctomize Error Message),我們先建立一個Partial Products Class,然後在這裡面寫入我們針對每個欄位要驗證的項目,以及驗證錯誤後,我們客製的錯誤訊息,如下範例程式碼所示:
1: using System;
2: using System.ComponentModel.DataAnnotations;
3: using System.Web.DynamicData;
4:
5: namespace WebAppDynamicData.Models
6: {
7: [MetadataType(typeof(ProductsMetadata))]
8: public partial class Products
9: {
10: public class ProductsMetadata
11: {
12: [StringLength(8, ErrorMessage = "ProductName超過欄位長度")]
13: public object ProductName;
14:
15: [Required(ErrorMessage = "UnitPrice欄位不可為空白")]
16: [Range(100, 2000,
17: ErrorMessage = "100<=UnitPrice允許值<=2000")]
18: public object UnitPrice;
19:
20: [RegularExpression(@"^\d+$",
21: ErrorMessage = "UnitsInStock欄位只可為數字")]
22: [DataType(DataType.Currency, ErrorMessage = "TypeError")]
23: public object UnitsInStock;
24: }
25: }
26: }
Display Customize Error Message
寫完上面的驗證項目與客製化的錯誤訊息後,我們來測試一下是否可出現我們剛才設定的客製化的錯誤訊息。我們將UnitPrice這個欄位先清為空白後,按下下方的Update,進行修改後儲存的動作,我們可看到我們剛才客製化的錯誤訊息「UnitPrice欄位不可為空白」。

我們再接著策是UnitPrice欄位值是否符合在一定的數值範圍內,我們在UnitPrice欄位輸入2001後按下Update,進行修改後儲存的動作,我們可看到我們剛才客製化的錯誤訊息「100<=UnitPrice允許值<=2000」。

以上我們示範了如何使用Dynamic Data 專案預設範本後,還能客製化我們想要顯示的錯誤訊息。
沒有留言:
張貼留言