如何忽略ASP.NET MVC路由中的特定路由

时间:2015-08-03 13:25:28

标签: c# asp.net asp.net-mvc asp.net-mvc-4 asp.net-mvc-routing

如果我希望应用程序忽略以单词"得分"开头的所有网址,那么在ASP.NET MVC应用程序中放入RouteConfig.RegisterRoutes方法的正确语法是什么?喜欢

  

http://myserver/score*.*

换句话说,任何以文字开头的网址"得分"我希望我的应用无视。

我试过了:

routes.IgnoreRoute("score*.*/{*pathInfo}");

我也尝试过这种语法的其他几种组合,但不能很好地理解它。

这是我目前在RouteConfig中所拥有的内容。它几乎是标准的东西。

 public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Order", action = "Add", id = UrlParameter.Optional }
        );
    }
}

1 个答案:

答案 0 :(得分:4)

您应将得分*。*作为RegoreRoute中的regEx表达式:

routes.IgnoreRoute("{score}/{*pathInfo}", new { score = @"score*.*" });

有关更一般的答案,您可以使用此模式忽略所需的路线:

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

因此,对于score.js和score.txt路线,您将添加过滤该路线的regEx。