MVC 中的路由不起作用
Routing in MVC is not working
我正在阅读一本关于 MVC 的电子书。
它有以下示例,但其中 none 正在运行。
routes.MapRoute("", "X{controller}/{action}");
routes.MapRoute("", "Public/{controller}/{action}",
new { controller = "Home", action = "Index" });
他们都会去首页controller
和索引action
Link 第一条路线:http://localhost:14099/XHome/Index
Link 第二条路线:http://localhost:14099/Public/Home/Index
两者的输出应该与书中的示例相同。但是当我尝试相同时,它没有给出任何结果。即 resource cannot be found.
我在这里做错了什么吗?
以下是我编写的代码:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute("", "X{controller}/{action}");
routes.MapRoute("MyRoute", "{controller}/{action}",
new { controller = "Home", action = "Index" });
routes.MapRoute("", "Public/{controller}/{action}",
new { controller = "Home", action = "Index" });
}
我在默认之后写路由是错误的,所以我不得不在默认之前写它,这很明显。
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute("", "X{controller}/{action}");
routes.MapRoute("MyRoute", "{controller}/{action}",
new { controller = "Home", action = "Index" });
routes.MapRoute("", "Public/{controller}/{action}",
new { controller = "Home", action = "Index" });
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
我正在阅读一本关于 MVC 的电子书。
它有以下示例,但其中 none 正在运行。
routes.MapRoute("", "X{controller}/{action}");
routes.MapRoute("", "Public/{controller}/{action}",
new { controller = "Home", action = "Index" });
他们都会去首页controller
和索引action
Link 第一条路线:http://localhost:14099/XHome/Index
Link 第二条路线:http://localhost:14099/Public/Home/Index
两者的输出应该与书中的示例相同。但是当我尝试相同时,它没有给出任何结果。即 resource cannot be found.
我在这里做错了什么吗?
以下是我编写的代码:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute("", "X{controller}/{action}");
routes.MapRoute("MyRoute", "{controller}/{action}",
new { controller = "Home", action = "Index" });
routes.MapRoute("", "Public/{controller}/{action}",
new { controller = "Home", action = "Index" });
}
我在默认之后写路由是错误的,所以我不得不在默认之前写它,这很明显。
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute("", "X{controller}/{action}");
routes.MapRoute("MyRoute", "{controller}/{action}",
new { controller = "Home", action = "Index" });
routes.MapRoute("", "Public/{controller}/{action}",
new { controller = "Home", action = "Index" });
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}