ASP.NET Routing - Ignore routes for files with specific extension, regardless of directory

北城余情 提交于 2019-11-27 18:04:56

问题


Say I want to remove any mapped routes for files with a certain file extension.

 RouteTable.Routes.Ignore("{root}.hello");

Works for any file that has the extension .hello in the root directory, however as soon as i go into any subfolders the 'ignore' rule isn't applied.

Ive tried lots of different combinations, but can't seem to get one that doesn't throw a compiler exception, or not work?


回答1:


Check out Phil's blog regarding this. Basically, you would do something like this:

Example 1: Do not perform routing for any request for all .aspx files:

routes.IgnoreRoute("{*allaspx}", new {allaspx=@".*\.aspx(/.*)?"});

Example 2: Do not perform routing for any request for favicon.ico

routes.IgnoreRoute("{*favicon}", new {favicon=@"(.*/)?favicon.ico(/.*)?"});



回答2:


If you're using ASP.NET MVC, use IgnoreRoutes (MVC Extension method)

Routes.IgnoreRoute("{*foo*}", new { foo = @"someregextoignorewhatyouwant"});

If you're using ASP.NET Web Forms, use StopRoutingHandler which implements IRouteHandler.

routes.Add(new Route("*someregextoignorewhatyouwant*", new StopRoutingHandler()));


来源:https://stackoverflow.com/questions/3228328/asp-net-routing-ignore-routes-for-files-with-specific-extension-regardless-of

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!