我正在学习一个新创建的默认简单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);
}
答案 0 :(得分:0)
CreateNewUser
操作在[HttpPost]
上触发,并尝试使用无效(空)凭据发布。
您需要使用[HttpGet]
添加一些效果:
[HttpGet]
public ActionResult CreateNewUser(CreateNewUserModel model)
{
return View(model);
}
答案 1 :(得分:0)
你的问题在这里
最后是用于http GET
的CreateNewUser方法public ActionResult CreateNewUser(CreateNewUserModel model)
{
return View(model);
}
您无法将对象作为参数传递给get请求。可能签名应该是
public ActionResult CreateNewUser()
{
var model = new CreateNewUserModel();
return View(model);
}
或类似的东西