2017-02-22 67 views
2

我在.NET核心MVC中使用C#,我有一個表格,用戶需要填寫。我如何在某些時候驗證某些字段?

所有顯示在頁面上的字段都需要填寫。我遇到的問題是表單中的一些字段被隱藏,而其他字段則根據以前在表單上做出的選擇來顯示。

如果我在模型中的所有字段上放置了[Required]標籤,當我驗證ModelState時,它將未顯示的字段標記爲無效。

有沒有一種方法,當我嘗試驗證ModelState時,我只能驗證頁面上顯示的字段並忽略隱藏的字段?

謝謝。

回答

0

如果我把[必填]標籤上的所有字段的模型,當我 驗證的ModelState,它標誌了不顯示的字段爲無效。

當然因爲你設置了一個參數「必需」。從字段中禁用該參數可以不顯示或make nullable

1

不幸的是,[Required]在MVC全球工作。

您將需要開發自己的驗證屬性。希望有人已經做到了,但對於MVC與.NET框架(see the code here):

爲了驗證有以下形式:「驗證,只有當 這等領域具有一定的價值這一領域」,我已經編寫了3個屬性: RequiredIf,RangeIf和RegularExpressionIf表示從 繼承ValidationAttribute。

現在您需要翻譯它才能使用.NET Core。

如果您正在尋找更通用的解決方案,Web窗體框架有一個非常好的概念驗證組。它允許您驗證 - 或不 - 按邏輯分組的屬性。

相關問題