asp.net web窗体中根地址的路由

asp.net web窗体中根地址的路由,asp.net,routing,webforms,url-routing,Asp.net,Routing,Webforms,Url Routing,我在web窗体应用程序的global.asax中有以下RegisterRoutes方法` routes.MapPageRoute("about", "about", "~/about.aspx"); routes.Add( "root", new Route("", new RootRouteHandler()) ); 第一条路线工作正常,即当我打字时http://localhost:9898/ab

我在web窗体应用程序的global.asax中有以下RegisterRoutes方法`

routes.MapPageRoute("about", "about", "~/about.aspx");
            routes.Add(
            "root",
            new Route("", new RootRouteHandler())
            );
第一条路线工作正常,即当我打字时http://localhost:9898/about 但当我转到根地址时,比如'http://localhost:9898'它不调用RootRouteHandler。这是路由处理程序的代码

public class RootRouteHandler : IRouteHandler
    {
        public IHttpHandler GetHttpHandler(RequestContext requestContext)
        {
            var address = requestContext.HttpContext.Request.Headers["host"];
            string host = string.Empty;
            var index = address.IndexOf('.');
            if(index>0)
            {
                host = address.Substring(0, index);
            }
            var virtualPath = string.Format("~/{0}/default.aspx", host);
            var page = BuildManager.CreateInstanceFromVirtualPath(virtualPath, typeof(Page)) as Page;
            return page;
        }
    }
*编辑:*当我添加路线时,如

routes.Add("root",new Route("default",new RootRouteHandler());

然后为地址调用处理程序finehttp://localhost:9898/default 但我需要让它为根地址工作。有什么想法吗?

我认为您需要创建一个新的RouteBase,以便为主机路由并覆盖GetRouteData方法。考虑从RouteBase派生,并提供基于主机的路由功能,并将其添加到TraceCopultS/<
我认为您需要创建一个新的RouteBase,以便为主机路由并覆盖GetRouteData方法。考虑从RouteBase派生,并提供基于主机的路由功能,并将其添加到TraceCopultS/<