簡體   English   中英

單個屬性上的多個自定義驗證屬性

[英]Multiple custom validation attribute on single property

我正在從事MVC 4項目。 我在單個屬性上有多個自定義驗證屬性的問題。 假設我有3個針對單個屬性的自定義驗證屬性,例如:

public class Test
{
    [customAttribute1]
    [customAttribute2]
    [customAttribute3]
    public string property1 { get; set; }
}

當前,當我發布他的表單時,將對屬性執行所有三個自定義驗證(無論第一次驗證是通過還是失敗)。

我想要的是,如果customAttribute1驗證失敗,那么無需使用下一個下一個自定義屬性來驗證該屬性。 我怎樣才能做到這一點?

此行為的重點是將模型中的所有錯誤返回(返回給UI),以便用戶可以同時修復所有錯誤...

假設您希望密碼最少8個字符,並且至少有一個大寫字母和一個數字。 您希望驗證運行的方式是,如果密碼不夠長則停止而不檢查其余密碼。 典型的用例場景:

User sets password "foo" -> submit
error - Password too short
User sets it to "foofoofoo"
error - Password must have an uppercase
User sets it to "FooFooFoo"
error - Password must have a number
User goes away frustrated...

因此,如果要一起驗證這3個屬性,我的建議是保留這種行為。 如果3是排他性的,則按照其他建議進行操作,並將它們組合為單個屬性。

不支持AFAIK有條件地排序或執行。

最好的選擇是將所有這三個驗證都放在同一個屬性中。

如果您非常需要這種驗證,那么Fluent Validation可以為您完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM