【发布时间】:2018-10-18 13:23:36
【问题描述】:
将常规 ASP.NET 站点转换为 MVC,我遇到了一个问题,该问题在现有站点中很简单,但在 MVC 中却令人困惑。注册过程完成后,重定向到登录页面,传递用户名和密码,登录用户并显示条款页面,因为这是用户第一次登录。
MVC 项目中的 Login 视图有一个 Post 操作:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Login(Login login)
{
...
if (!u.TermsAccepted)
return RedirectToAction("AgreementPage", "Login");
}
我需要注册控制器来使用它,但似乎没有办法从不同的控制器调用 Post 操作。我能做的最好的就是显示登录视图,填写用户名和密码。在 MVC 中有什么方法可以做到这一点?
编辑:
应该加上Login控制器也有一个Get:
[HttpGet]
public ActionResult Login()
{
ViewBag.ErrorMessage = "";
return View();
}
使用 RedirectToAction 调用这个,而不是 Post:
Login login = new Login() { Username = info.UserInfo.UserName, Password = info.UserInfo.Password };
return RedirectToAction("Login", "Login", login);
【问题讨论】: