routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "CatchAll",
url: "{id}",
defaults: new { controller = "Home", action = "CatchAll", id = UrlParameter.Optional }
);
是否有一种简单的方法来实现以下路由模式。基本上我想在控制器不存在的情况下抓住所有内容。如果页面存在于数据库中,则会为这些页面动态填充页面。其他明智的我会抛出一个错误。我不想要一条以任何其他东西开头的路线。例如
routes.MapRoute(
name: "CatchAll",
url: "Caught/{id}",
defaults: new { controller = "Home", action = "CatchAll", id = UrlParameter.Optional }
);
我可以得到它,以便每个单独的工作,但让他们同时工作,证明有点困难。我猜我需要在某处重载某些东西。必须有一位知道答案的古茹! :d
答案 0 :(得分:0)
就匹配而言,这两条路线实际上是相同的。默认路由实际上是一个捕获所有用户指向Home.Index。如果控制器或操作不存在,则会引发404错误。您可以将404重定向到Web配置中的特定控制器。
这可能会有所帮助: Returning 404 Error ASP.NET MVC 3