2016-02-18 46 views
0

我是新來的MVC和一個示例應用程序的工作。我怎樣才能使用相同的屬性與條件驗證

其中有用戶註冊和登錄表單。

在用戶註冊時,我需要對正則表達式檢查密碼,以確保其符合密碼策略,所以我把下面的User模型內部的Password屬性驗證:

[RegularExpression("(?=.{8,})(?=.*?[0-9])(?=.*?[A-Z]).*?[a-z].*", ErrorMessage = "Password requirement not met, please check password policy.")] 
[DataType(DataType.Password)] 
[Display(Name = "Password")] 
public string Password { get; set; } 

當我使用這個屬性從登錄頁面驗證出現,因爲我在模型中定義了它,但我不想在從Login頁面調用它時檢查此驗證。

請告知如何從登錄頁面和註冊頁面中使用此屬性,Password

謝謝。

+0

使用不同的視圖模型。註冊模型將需要不同的屬性比登錄模型,如ComparePassword屬性 –

回答

0

你可以告訴ModelBinder的具體忽略的錯誤:

if (ModelState["Password "] != null) ModelState["Password "].Errors.Clear(); 

你會做你的控制器內。另一方面,如果你真的需要它在兩頁中表現不同,我建議使用兩個不同的ViewModels。這是一個代碼重複的一點點,但它遠遠好於共享代碼是不相同的(只是在命名方面相似)

+0

謝謝,如果我有條件的情況下告訴ModelBinder我應該把它放在哪裏? – Aung

+0

編輯回答:在控制器 – Kenneth

+0

我已經添加在控制器中,但驗證消息仍然出現在登錄頁面, – Aung

相關問題