-2
我需要知道如何在asp.net MVC中實現可選驗證。像我LoginViewModel我有3個領域(1)電子郵件,(2)用戶名(3)密碼在查看用戶可以在同一個輸入框中輸入電子郵件或密碼,如果我把[必填]都在電子郵件和用戶名字段它不工作。所以讓我知道我在這種情況下如何處理它。ASP.Net中的可選驗證MVC
感謝 Sohaib賈韋德
我需要知道如何在asp.net MVC中實現可選驗證。像我LoginViewModel我有3個領域(1)電子郵件,(2)用戶名(3)密碼在查看用戶可以在同一個輸入框中輸入電子郵件或密碼,如果我把[必填]都在電子郵件和用戶名字段它不工作。所以讓我知道我在這種情況下如何處理它。ASP.Net中的可選驗證MVC
感謝 Sohaib賈韋德
雖然我不同意,你應該有一個單一的輸入字段爲password
和email address
,這裏是你會如何在控制器內執行有效性驗證您的來電瀏覽模式:
public ActionResult Index(LoginViewModel requestResponseModel)
{
// Has an email or password been entered?
if (string.IsNullOrWhiteSpace(requestResponseModel.EmailOrPassword))
{
this.ModelState.AddModelError("EmailOrPassword", "Please enter an email or a password");
}
else
{
try
{
// Is the input a valid email address?
var addr = new System.Net.Mail.MailAddress(email);
return addr.Address == email;
}
catch
{
// Not valid email, is it a valid password?
if (System.Text.regularExpressions.Regex.IsMatch(requestResponseModel.EmailOrPassword, "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\da-zA-Z]).{8,15}$"))
{
this.ModelState.AddModelError("EmailOrPassword", "Value entered is not a valid email address or password");
}
}
}
// Did it pass validation?
if (this.ModelState.IsValid())
{
// Register the user here...
}
return View(requestResponseModel);
}
你也可以在你的視圖模型的IValidatableObject
Validate()
方法中實現相同的代碼。您可以在模型上使用[Required]
,並在控制器內使用此驗證。
您的視圖中有多少個輸入框?你說用戶可以在同一個輸入框中輸入電子郵件或密碼。所以1用於電子郵件/密碼和1用戶名? – singsuyash
爲什麼你沒有每個領域的輸入框? – Ala
我有一個輸入框,用戶可以輸入電子郵件或用戶名,正如我們在facebook中看到的,用戶可以在同一輸入框中選擇輸入電子郵件或電話號碼。 –