在驗證我對 CRUD 頁面的提交...
<EditForm Model="CustomerData" OnValidSubmit="HandleValidSubmit" OnInvalidSubmit="HandleInvalidSubmit">
<DataAnnotationsValidator />
<ValidationSummary />
對于 0(零)的值,我收到此錯誤 - 不顯示該欄位的“DisplayName”:
'ID_CUSTOMER 的值必須大于或等于 1。
帶有 DisplayName 的 InputNumber 控制元件是:
<InputNumber
@bind-Value="CustomerData.ID_CUSTOMER" DisplayName="FCI Key" />
資料模型欄位定義如下:
[Required(ErrorMessage = "'{0}' is required.")]
[Range(1, 9999, ErrorMessage = "'{0}'s value must be greater or equal to {1}.")]
public int ID_CUSTOMER { get; set; }
正如您所看到的,ErrorMessage 顯示的是模型系結欄位名稱 ( ID_CUSTOMER ) 而不是 DisplayName ( FCI Key )。
我沒有在模型中輸入 [DisplayName...] 的原因是我可能會根據用戶在應用程式中的角色使用不同的 DisplayName。
所以我想我的問題是...為什么 InputNumber "DisplayName" 沒有用于驗證 ErrorMessage {0} 替換?
謝謝...約翰
uj5u.com熱心網友回復:
你可能誤解了InputBase.DisplayName. 此屬性可以更改帶有InputBase內置錯誤的錯誤訊息欄位名稱。例如,InputNumber必須是數字,InputDate必須是日期。如果不填寫數字/日期,則會生成帶有 DisplayName 的錯誤訊息。InputBase.DisplayName 無法對 Data Annotation 生效。此屬性也支持 .net 5。
參考:
顯示名稱支持
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/326948.html
