出于某种原因,我的应用程序在重定向回到returnUrl(通过AccountController登录操作)时一直试图找到Home Controller,即使我已将我的HomeController更改为DashboardController以及更改了我的RouteConfig.cs < / p>
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索引视图)。
我需要更改哪些内容才能使我的应用程序不再搜索家庭控制器?
答案 0 :(得分: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 :(得分:1)
该控制器操作通常会在“〜/ Views / Dashboard”文件夹中查找文件Index.cshtml。如果您没有将“〜/ Views / Home”文件夹重命名为“〜/ Views / Dashboard”,则控制器将查找该文件的错误位置,并且无法找到它,因此产生404错误。