asp.net web窗体中根地址的路由
我在web窗体应用程序的global.asax中有以下RegisterRoutes方法`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
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/<