我正在學習一個新創建的默認簡單MVC4 web項目。控制的奇怪的過早驗證
在索引頁面中,我有一個鏈接供用戶用他的帳戶登錄該網站。之後,他將被重定向到一個表單,以輸入新名稱,新密碼。
我已準備好使用[Required]
進行驗證。但是隨着重定向頁面完全加載,這些控件(用戶名和密碼)也被驗證(Field needs be filled in
)。
這裏是POST的用戶後的代碼登錄他的帳戶
if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
{
return RedirectToCreateUser(returnUrl);
}
// If we got this far, something failed, redisplay form
ModelState.AddModelError("", "The user name or password provided is incorrect.");
return View(model);
這裏是方法RedirectToCreateUser
private ActionResult RedirectToCreateUser(string url)
{
if (Url.IsLocalUrl(url))
{
return Redirect(url);
}
else
{
return RedirectToAction("CreateNewUser", "Account");
}
}
最後CreateNewUser方法,它是HTTP GET
public ActionResult CreateNewUser(CreateNewUserModel model)
{
return View(model);
}
另一個用於http POST的,我認爲還沒有被訪問過啊。
[HttpPost]
public ActionResult CreateNewUser(CreateNewUserModel model, string url)
{
if (ModelState.IsValid)
{
// Attempt to register the user
try
{
WebSecurity.CreateUserAndAccount(model.UserName, model.Password, null, true);
WebSecurity.Login(model.UserName, model.Password);
return RedirectToAction("CreateUserSuccess", "Account");
}
catch (MembershipCreateUserException e)
{
ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
}
}
else
{
}
return View(model);
}
真棒,現在的工作,感謝42 –
高興幫助。 –