2012-10-11 32 views
0

我正在爲我的MVC3網站創建登錄屏幕。很明顯,用戶從這個頁面登錄,但是如果他們忘記了密碼,他們可以點擊一個鏈接,然後Javascript隱藏LogOn,然後忘記出現在他們可以輸入他們的電子郵件地址的地方。所以我有一個LogOnModel,它要求用戶名和密碼字段有一個值。 ForgotModel要求emailAddress字段有一個值。然後在頁面上使用由這兩者組成的LogOnMaster模型。使用由ASP.NET MVC3中的兩個模型組成的主模型衝突

public class LogOnMasterModel : MasterViewModel 
{ 
    public LogOnModel LoginViewModel { get; set; } 
    public ForgettenModel ForgottenViewModel { get; set; } 
} 

問題是當我點擊LogOn的提交按鈕時,它希望電子郵件地址字段有一個值。我怎樣才能讓它只驗證登錄提交按鈕上的LoginViewModel,並且只有當忘記提交按鈕被點擊時才驗證ForgottenModel。

如果需要,我可以共享代碼。

我對完全不同的解決方案持開放態度。

回答

2

有幾種方法可以使用。第一個涉及僱用一個自定義驗證器,該驗證器確定是否填充了用戶名/密碼字段,那麼該電子郵件地址不是必需的。你可能嘗試的第二種方法,因爲一切顯然都是使用JavaScript運行的,所以當用戶單擊忘記密碼鏈接時,將填入默認忽略值([email protected]或其他東西)的電子郵件地址字段,該值被重置爲空。