【发布时间】:2016-03-04 12:12:49
【问题描述】:
我在从一个控制器重定向到另一个控制器时遇到问题,我的 ASP.NE MVC 应用程序在登录页面上启动,然后在用户成功登录时移动到 otp 页面(登录和 OTP 操作在同一个控制器中)。
当 OTP 成功提交后,应用程序必须继续到菜单页面,但它会重定向回登录页面。
AuthenticateController: 登录操作
// POST: /Authenticate/Login
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(ViewModel_Login model)
{
// do login validation
if (loggedin)
{
return View("OTPAuthentication");
}
else
{
return View(model);
}
}
AuthenticateController:OTPAuthentication 操作
// POST: /Authenticate/OTPAuthentication
[HttpPost]
[AuthorizeUser]
[ValidateAntiForgeryToken]
public ActionResult OTPAuthentication(ViewModel_OTP model)
{
if (ModelState.IsValid)
{
// do OTP validation
return this.RedirectToAction("MainMenu", "Options");
}
else
{
ModelState.AddModelError("", "The one time pin provided is incorrect.");
}
return View(model);
}
OptionsController: 主菜单操作
// GET: /Options/MainMenu
[AuthorizeUser]
public ActionResult MainMenu()
{
return View();
}
RouteConfig:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Authenticate", action = "Login", id = UrlParameter.Optional });
routes.MapRoute(
name: "Menu",
url: "Menu",
defaults: new { controller = "Options", action = "MainMenu" });
routes.MapRoute(
name: "Login",
url: "Login",
defaults: new { controller = "Authenticate", action = "Login" });
routes.MapRoute(
name: "OTP",
url: "OTP",
defaults: new { controller = "Authenticate", action = "OTPAuthentication" });
【问题讨论】:
-
MainMenu操作的默认视图是什么?指定了吗? -
MainMenu 仅包含 3 个链接到第三个控制器的按钮
标签: c# asp.net asp.net-mvc asp.net-mvc-4