У меня есть веб-сайт (ASP.NET WebForms), где я создаю таблицу маршрутизации из базы данных. Кроме того, у меня включен friendlyUrl
.
В Application_Start
из Global.asax
у меня есть следующий код:
RouteTable.Routes.Clear();
foreach (var page in pages)
{
Route siteRoute = new Route(page.RouteName,
new CustomRouteHandler("~/" + page.Handler));
RouteTable.Routes.Add(siteRoute);
}
var settings = new FriendlyUrlSettings();
settings.AutoRedirectMode = RedirectMode.Permanent;
RouteTable.Routes.EnableFriendlyUrls(settings);
RouteTable будет выглядеть следующим образом:
Дружественный URL
/default => /default.aspx
/blog => /blog.aspx
/about => /about.aspx
Пользовательский URL из базы данных
/blog/my-first-post => /blogpost.aspx
/blog/my-second-post => /blogpost.aspx
Проблема, с которой я столкнулся, заключается в том, что если есть страница с именем www.mysite.com/blog.aspx
, например, а затем я помещаю сообщение в блоге по маршруту www.mysite.com/blog/my-first-post
, последнее не отображается при отправке запроса на страница blog.aspx
вместо blogpost.aspx
, как я определил в предыдущем коде (page.Handler
) в строке:
Route siteRoute = new Route(page.RouteName, new CustomRouteHandler("~/" + page.Handler));
Можно ли как-то обойти это, и оба URL, /blog
и /blog/my-first-post
, перенаправлены на две разные страницы?