在我的帐户/登录控制器方法中,我有类似的东西:
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 }
);
}
提前谢谢。
路线设置的原因没有错,因为它不包括Index
在URL
中,因为根据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" });