我在.NET核心MVC中使用C#,我有一個表格,用戶需要填寫。我如何在某些時候驗證某些字段?
所有顯示在頁面上的字段都需要填寫。我遇到的問題是表單中的一些字段被隱藏,而其他字段則根據以前在表單上做出的選擇來顯示。
如果我在模型中的所有字段上放置了[Required]標籤,當我驗證ModelState時,它將未顯示的字段標記爲無效。
有沒有一種方法,當我嘗試驗證ModelState時,我只能驗證頁面上顯示的字段並忽略隱藏的字段?
謝謝。
我在.NET核心MVC中使用C#,我有一個表格,用戶需要填寫。我如何在某些時候驗證某些字段?
所有顯示在頁面上的字段都需要填寫。我遇到的問題是表單中的一些字段被隱藏,而其他字段則根據以前在表單上做出的選擇來顯示。
如果我在模型中的所有字段上放置了[Required]標籤,當我驗證ModelState時,它將未顯示的字段標記爲無效。
有沒有一種方法,當我嘗試驗證ModelState時,我只能驗證頁面上顯示的字段並忽略隱藏的字段?
謝謝。
如果我把[必填]標籤上的所有字段的模型,當我 驗證的ModelState,它標誌了不顯示的字段爲無效。
當然因爲你設置了一個參數「必需」。從字段中禁用該參數可以不顯示或make nullable
不幸的是,[Required]
在MVC全球工作。
您將需要開發自己的驗證屬性。希望有人已經做到了,但對於MVC與.NET框架(see the code here):
爲了驗證有以下形式:「驗證,只有當 這等領域具有一定的價值這一領域」,我已經編寫了3個屬性: RequiredIf,RangeIf和RegularExpressionIf表示從 繼承ValidationAttribute。
現在您需要翻譯它才能使用.NET Core。
如果您正在尋找更通用的解決方案,Web窗體框架有一個非常好的概念驗證組。它允許您驗證 - 或不 - 按邏輯分組的屬性。