【问题标题】:how to simulate IgnoreRoute in my custom MvcRouteHandler如何在我的自定义 MvcRouteHandler 中模拟 IgnoreRoute
【发布时间】:2011-02-14 16:35:15
【问题描述】:

在我的 ASP.NET MVC3 应用程序中,我尝试模拟“routes.IgnoreRoute("...")” 我创建 CustomMvcRouteHandler:

public class CustomMvcRouteHandler: MvcRouteHandler
{        
    protected override IHttpHandler GetHttpHandler(RequestContext requestContext)
    {
         // do something
         ....
         return base.GetHttpHandler(requestContext);
    }
}

在我的 Global.asax.cs 文件中:

protected void Application_Start()
    {
        // ............ 
        RegisterRoutes(RouteTable.Routes);
        // ............
     }


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

       routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        ).RouteHandler = new CustomMvcRouteHandler();
     }

我该怎么做?

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-2 asp.net-mvc-3 asp.net-mvc-routing


    【解决方案1】:

    我不完全确定你的问题是什么意思,但我会尽力回答......

    要模拟IgnoreRoute,您只需将StopRoutingHandler 的实例与您的路由关联。如果您使用的是内置的 ASP.NET "Route" 类,那么您将执行以下操作:

    routes.MapRoute(
        "Ignore-This", // Route name
        "ignore/{this}/{pattern}" // URL with parameters
    ).RouteHandler = new StopRoutingHandler();
    

    任何与该模式匹配的东西都会导致路由系统立即停止处理更多路由。

    如果您想编写自己的自定义路由(例如,派生自RouteBase 的新路由类型),则需要从其GetRouteData 方法返回StopRoutingHandler

    【讨论】:

      【解决方案2】:

      @Eilon 是正确答案。这是一种感觉更 MVCish 的替代语法。

      routes.Add("Ignore-This",
          new Route(
              "ignore/{this}/{pattern}",
              new StopRoutingHandler())
      );
      

      【讨论】:

        猜你喜欢
        • 2010-09-10
        • 1970-01-01
        • 1970-01-01
        • 2014-12-24
        • 2021-09-13
        • 2021-02-22
        • 1970-01-01
        • 1970-01-01
        • 2022-10-17
        相关资源
        最近更新 更多