RedirectToAction()到不同的文件夹

时间:2015-09-18 08:57:08

标签: c# asp.net

嘿伙计我有轻松的问题,我想更改起始页面。 在HomeControllers.cs我有:

public ActionResult Index()
{
    if (Session["LoginId"] == null)
    {
        return RedirectToAction("Login.aspx");
    }
    return View();
}

重定向到:http://localhost/TutorialCS/Home/Login.aspx 但我想摆脱/Home

Global.asax.cs我改变的时候;

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.MapRoute(
        "Default",                                              // Route name
        "{controller}/{action}/{id}",                           // URL with parameters
        new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
    );
}

到没有{Controller}的人:

routes.MapRoute(
            "Default",                         // Route name
            "{action}/{id}",                   // URL with parameters
            new { action = "Index", id = "" }  // Parameter defaults
);

它重定向到正确的存储库,但页面不再起作用我想这会改变很多路径。

2 个答案:

答案 0 :(得分:2)

RedirectToAction有另一个重载接受控制器名称作为第二个参数:

protected internal RedirectToRouteResult RedirectToAction(
    string actionName,
    string controllerName
)

所以:

return RedirectToAction("Login", "Account");

更新:如果您想重定向到此网址:

http://localhost/TutorialCS/Login.aspx

您应该使用Redirect方法:

return Redirect("~/TutorialCS/Login.aspx");

答案 1 :(得分:1)

您只需要使用带有两个参数的方法调用:操作名称和控制器名称:

RedirectToAction("Login", "Account")