首页 文章

returnUrl重定向到错误的页面

提问于
浏览
-1

出于某种原因,我的应用程序在重定向回到returnUrl(通过AccountController登录操作)时一直试图找到Home Controller,即使我已将我的HomeController更改为DashboardController以及更改了我的RouteConfig.cs

namespace application
{
    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 = "Dashboard", action = "Index", id = UrlParameter.Optional }
            );
        }
    }
}

当我的应用程序启动时,由于控制器中的 [Authorize] 属性,它会自动重定向到帐户/登录视图 . 但是当我输入Account / Login到我的Url时,returnUrl在GET操作中变得等于"/",并且在登录时我收到404错误页面,因为它无法找到HomeController Index View(实际上是DashboardController Index)视图) .

还需要更改什么才能使我的应用程序不再搜索家庭控制器?

2 回答

  • 2

    我的问题的解决方案是帐户控制器RedirectToLocal操作重定向到Home Controller Index Action,因此我不得不将其更改为Dashboard Controller Index Action .

    private ActionResult RedirectToLocal(string returnUrl)
        {
            if (Url.IsLocalUrl(returnUrl))
            {
                return Redirect(returnUrl);
            }
            return RedirectToAction("Index", "Dashboard");
        }
    
  • 1

    该控制器操作通常会在“〜/ Views / Dashboard”文件夹中查找文件Index.cshtml . 如果您没有将“〜/ Views / Home”文件夹重命名为“〜/ Views / Dashboard”,则控制器将查找该文件的错误位置,并且无法找到它,因此产生404错误 .

相关问题