ASP.NET MVC 重定向到操作不会重定向到另一个控制器的索引



在我的帐户/登录控制器方法中,我有类似的东西:

var classA = GetObject(); //actual code omitted
switch(classA.PropA)
{
    case 1:
        return RedirectToAction("Action2", "Registration");
    //more case code omitted
    default:
        return RedirectToAction("Index", "Registration");
}

所有情况在开关块中都可以正常工作,除了默认设置,它应该转到注册控制器中的索引。取而代之的是,它将我带到localhost:port/Registration,其中省略了操作索引。

如果将 ActionName 更改为其他内容(例如 Index2(,则工作正常。如果控制器名称更改为其他名称,也可以正常工作。

RouteConfig 是只是创建项目时自动生成的代码,如下所示:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
     }

提前谢谢。

路线设置的原因没有错,因为它不包括IndexURL中,因为根据default route

url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

当您输入/Registration路由已经知道默认操作index,因此它不会在URL和大约中添加/index

403.14 禁止

如果您查看这篇文章 HTTP 错误 403.14 - 禁止 - 带有 IIS Express 的 MVC 4,这可能是因为您可能在项目目录中有一个名为 Registration 的文件或文件夹

如果您使用RedirectionToAction("Index","ControllerName");它会使用默认映射配置将您重定向到localhost:port/ControllerName在您的情况下,如果您执行RedirectionToAction("Index","ControllerName");它会将您重定向到 localhost:port/Registration

尝试在

return RedirectToAction("Index");

在 RouteConfig 中,您可以将操作"索引"路由到控制器"注册">

喜欢

routes.MapRoute("Index", "Index", new { controller = "Registration", action = "Index" });

相关内容

  • 没有找到相关文章

最新更新