MVC路由匹配除了资源之外的所有路由
本文关键字:路由 MVC 资源 | 更新日期: 2023-09-27 18:19:08
我有一个angularJS应用程序。我创建了一个返回渲染索引的控制器/动作。CSHTML。这是我唯一的mvc4控制器。我将webapi用于所有其他行为。客户端应该只处理路由。到目前为止运行良好。
RouteExistingFiles = false;
routes.MapRoute(
name: "Default",
url: "{*url}",
defaults: new { controller = "Index", action = "Index" }
);
问题是这个解决方案匹配像"localhost/favicon.ico, localhost/template.html"这样的资源。我可以阻止或忽略所有这样的请求吗?
您可以使用IgnoreRoute
,以便路由模块忽略对这些资源的请求,例如:
routes.IgnoreRoute("favicon.ico");
routes.IgnoreRoute("{templateName}.html");
这些必须在您当前的Default
路由之前添加。
你可以尝试这样做,然后路由模块忽略对任何.html和.ico文件的请求:-
routes.IgnoreRoute("{*allhtml}", new {allhtml=@".*'.html(/.*)?"});
routes.IgnoreRoute("{*favicon}", new {favicon=@"(.*/)?favicon.ico(/.*)?"})