从 MVC 中的不同控制器调用发布操作



将常规 ASP.NET 站点转换为MVC,我遇到了一个功能问题,该功能在现有站点中很容易,但在MVC中却令人困惑。注册过程完成后,将重定向到登录页面,传递用户名和密码,该用户名和密码登录用户并显示一个条款页面,因为它是用户第一次登录。

MVC 项目中的"登录"视图有一个 Post 操作,该操作执行以下操作:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Login(Login login)
{
...
if (!u.TermsAccepted)
return RedirectToAction("AgreementPage", "Login");
}

我需要注册控制器来使用它,但似乎没有办法从不同的控制器调用 Post 操作。我能做的最好的事情就是显示登录视图,填写用户名和密码。有什么方法可以在 MVC 中做到这一点吗?

编辑:

应该添加登录控制器也有一个 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);

很抱歉在这里混淆了你,这是答案

MVC 不支持用于重定向的帖子

最新更新