在我的帐户/登录控制器方法中,我有类似的内容:
var classA = GetObject(); //actual code omitted
switch(classA.PropA)
{
case 1:
return RedirectToAction("Action2", "Registration");
//more case code omitted
default:
return RedirectToAction("Index", "Registration");
}
所有的情况都可以在switch块中正常工作,除了默认情况下它会在RegistrationController中转到Index。而不是那样,它需要我到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 }
);
}
提前致谢。
答案 0 :(得分:3)
路线设置Index
中不包含URL
的原因没有任何问题,因为根据default route
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
当您输入/Registration
时,路线已经知道index
的默认操作,因此它不会在/index
和
URL
403.14禁止
如果您查看此帖子HTTP Error 403.14 - Forbidden - MVC 4 with IIS Express,可能是因为您可能在项目目录中有一个名为Registration
的文件或文件夹
答案 1 :(得分:1)
如果您使用RedirectionToAction("Index","ControllerName");
它会使用默认映射配置将您重定向到localhost:port/ControllerName
在您的情况下,如果您执行RedirectionToAction("Index","ControllerName");
,它会将您重定向到
localhost:port/Registration
答案 2 :(得分:0)
尝试使用
return RedirectToAction("Index");
在RouteConfig中你可以路由Action" Index"控制器"注册"
喜欢
routes.MapRoute("Index", "Index", new { controller = "Registration", action = "Index" });