首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Asp.Net路由:如何忽略多个通配符路由?

在Asp.Net路由中,要忽略多个通配符路由,可以使用以下方法:

  1. 使用正则表达式限制路由模式:

在定义路由时,可以使用正则表达式限制路由模式,以忽略不需要的通配符路由。例如,要忽略以“blog”开头的路由,可以使用以下代码:

代码语言:csharp
复制
routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
    constraints: new { controller = "^(?!blog).*" }
);
  1. 使用RouteBase类自定义路由:

可以通过继承RouteBase类创建自定义路由,以便更好地控制路由匹配。例如,要忽略以“blog”开头的路由,可以使用以下代码:

代码语言:csharp
复制
public class CustomRoute : RouteBase
{
    public override RouteData GetRouteData(HttpContextBase httpContext)
    {
        var data = new RouteData();
        var url = httpContext.Request.Path.ToLower();

        if (url.StartsWith("/blog"))
        {
            return null;
        }

        // 添加其他路由逻辑

        return data;
    }

    public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
    {
        // 添加虚拟路径生成逻辑
    }
}

然后在Global.asax.cs文件中使用自定义路由:

代码语言:csharp
复制
public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.Add(new CustomRoute());
}

通过以上方法,可以忽略多个通配符路由,从而实现更精确的路由匹配。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • ASP.NET Core路由中间件[1]: 终结点与URL的映射

    借助路由系统提供的请求URL模式与对应终结点(Endpoint)之间的映射关系,我们可以将具有相同URL模式的请求分发给应用的终结点进行处理。ASP.NET Core的路由是通过EndpointRoutingMiddleware和EndpointMiddleware这两个中间件协作完成的,它们在ASP.NET Core平台上具有举足轻重的地位,因为ASP.NET Core MVC框架就建立在这个中间件之上。可以将一个ASP.NET Core应用视为一组终结点的组合,所谓的终结点可以理解为能够通过HTTP请求的形式访问的远程服务。每个终结点通过RequestDelegate对象来处理路由过来的请求。ASP.NET Core的路由是通过EndpointRoutingMiddleware和EndpointMiddleware这两个中间件来实现的,这两个中间件类型都定义在NuGet包“Microsoft.AspNetCore.Routing”中。为了使读者对实现在RouterMiddleware的路由功能有一个大体的认识,下面先演示几个简单的实例。

    03

    .NET Core实战项目之CMS 第十七章 CMS网站系统的部署

    目前我们的.NET Core实战项目之CMS系列教程基本走到尾声了,通过这一系列的学习你应该能够轻松应对.NET Core的日常开发了!当然这个CMS系统的一些逻辑处理还需要优化,如没有引入日志组件以及缓存功能,权限目前只支持控制到菜单,却没有控制到具体的功能(其实这块只是苦于样式不会处理,不然的话也会把功能加上),不过话又说回来,这些都是次要的,后期有时间慢慢补上吧,因为我开这个系列的初衷也是对大家入门.NET Core学习有所帮助!这一章我们将一起部署我们的一路开发过来的网站。如果你觉得文中有任何不妥的地方还请留言或者加入DotNetCore实战千人交流群637326624跟大伙进行交流讨论吧!

    02
    领券