2013-10-15 158 views
-2

我必須驗證密碼並確認密碼。我用Compare,但是當密碼和確認密碼有空時,顯示ErrorMessage。ASP MVC驗證密碼並確認密碼

怎麼辦,當密碼和確認密碼都爲空時,它不應該顯示ErrorMessage。

+2

使用必需屬性 – Maris

回答

3

使用[Compare]作爲等號匹配,使用[Required]避免空白值。

+0

密碼是可選的,而不是必需的。問題是,當密碼爲空並確認passowrd id爲null時,則顯示ErrorMassage:「密碼和ConfirmPassword不相同」 – user2881533

+0

您可以實現自己的自定義驗證程序。 – Flea777

0

我不太明白你需要什麼,但:

如果需要允許使用空密碼,使用[Required]以及[Compare]
如果你不要,只保留[Compare]屬性。

+0

密碼是可選的,而不是必需的。問題是,當密碼爲空並確認passowrd id爲空時,則顯示ErrorMassage:「密碼和ConfirmPassword不相同」。 – user2881533

+1

我認爲你寫的與你的想法背道而馳。 「如果您需要允許空密碼,請僅使用[Compare]屬性。」 –

5

我推薦FluentValidation庫,您可以在其中聲明地指定這樣複雜的場景。

RuleFor(customer => customer.Password) 
.Equal(customer => customer.PasswordConfirmation) 
.When(customer=>!String.IsNullOrWhitespace(customer.Password)); 

可以使用的NuGet

PM> Install-Package FluentValidation.MVC4 

https://www.nuget.org/packages/FluentValidation.MVC4/

+0

聽起來像一個很好的插件 –

+0

@AKhudairy沒有像我這樣向我傾訴。在我看來,屬性更好,功能更多。 – AgentFire

+0

很高興有選擇。我也使用屬性,但你不知道你可能需要什麼。 –

0

如果密碼是可選的則只能使用[比較]屬性安裝該庫。