我正在学习一个新创建的默认简单 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");
}
}
最后是用于 http GET 的 CreateNewUser 方法
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);
}