0

我正在尝试在我的 ASP.NET MVC 应用程序中的 Global.ascx 中添加一些路由规则。我扩展IRouteHanlder,MVCHandlerregiste规则如下。

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

        //routes.MapRoute(
        //    "DefaultTT", // Route name
        //    "test", // URL with parameters
        //    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        //);

        RouteValueDictionary defaults = new RouteValueDictionary();
        RouteValueDictionary constraints = new RouteValueDictionary();
        RouteValueDictionary tokens = new RouteValueDictionary();

        defaults.Add("controller", "home");
        defaults.Add("action", "index");
        defaults.Add("data", string.Empty);
        constraints.Add("data", @"[a-zA-Z0-9\-]*");
        tokens.Add("pageId", 0);

        routes.Add(new Route("", defaults, constraints, tokens, new MyRouteHandler()));
    }
public class MyRouteHandler : IRouteHandler
    {

        public System.Web.IHttpHandler GetHttpHandler(System.Web.Routing.RequestContext requestContext)
        {
            return new MyMVCHanlder(requestContext);
        }
    }

    public class MyMVCHanlder : MvcHandler
    {
        public MyMVCHanlder(RequestContext requestContext)
            : base(requestContext)
        {

        }

        protected override void ProcessRequest(HttpContext httpContext)
        {
            int i = 1;
            int j = i + 1;
            base.ProcessRequest(httpContext);
        }


        protected override void ProcessRequest(HttpContextBase httpContext)
        {
            int i = 1;
            int j = i + 1;
            base.ProcessRequest(httpContext);
        }
    }

但是当我在浏览器中访问 localhost:50112/ 时,无法触发 ProcessRequest 方法。我不知道为什么。你有什么想法吗?谢谢你。

4

0 回答 0