将常规的ASP.NET站点转换为MVC,我遇到了一个问题,该功能在现有站点中很容易,但在MVC中却令人困惑。注册过程完成后,将重定向到登录页面,并传递用户名和密码,该用户名和密码将登录到用户并显示条款页面,因为这是用户首次登录。
MVC项目中的“登录”视图具有执行此操作的“发布”操作:
[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);