我在我的控制器中使用了此方法來處理登錄憑據的提交。ASP.Net MVC重定向到「/」而不是指定的操作
[HttpPost]
public ActionResult Login(LoginForm form)
{
if (ModelState.IsValid)
{
var user = userService.Login(form); // determine if the form data authenticates a valid user
if (user != null)
{
// OMITTED: Indicate correct credentials.
if (System.String.IsNullOrWhiteSpace(form.returnUrl) || (form.returnUrl == "/"))
{
var outbound = RedirectToAction("defaultAction", "defaultController");
return outbound;
}
return Redirect(form.returnUrl);
}
// OMITTED: Indicate incorrect credentials.
return View(form);
}
// OMITTED: Indicate improper form input
return View(form);
}
IntelliTrace報告「返回出站」後的事件爲ASP.Net: Redirect to "/"
。這顯然是不正確的;它應該是defaultController/defaultAction
。爲什麼會發生這種情況,我該如何解決?
更新1:路由配置:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "defaultController", action = "defaultAction", id = UrlParameter.Optional }
);
}
}
http://stackoverflow.com/questions/9554115/redirect-to-return-url-after-login – GANI
請顯示您的路線配置。 –
添加路由配置。 –