у меня есть следующий метод RegisterRoutes в global.asax моего приложения веб-форм`
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());
тогда обработчик нормально вызывается для адреса http://localhost:9898/default
, но мне нужно, чтобы он работал для корневого адреса. есть идеи?