Маршруты папок по умолчанию с использованием Microsoft.AspNet.Веб-формы FriendlyUrls

#c# #asp.net #webforms #routing

#c# #asp.net #веб-формы #маршруты

Вопрос:

Я начинаю новый проект webforms с использованием Microsoft.AspNet.FriendlyUrls, но хотите иметь возможность задавать маршрут по умолчанию для папки. У меня есть папка с именем news, которая содержит news.aspx и newsitem.aspx. Я хотел бы иметь возможность маршрутизировать следующим образом:

 http://sitename/news - Routes to ~/news/news.aspx
http://sitename/news/news - Routes to ~/news/news.aspx
http://sitename/news/newsitem - Routes to ~/news/newsitem.aspx
  

Второй и третий маршруты работают с использованием приведенного ниже кода, но не http://sitename/news

  public static class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        var settings = new FriendlyUrlSettings();
        settings.AutoRedirectMode = RedirectMode.Permanent;
        routes.EnableFriendlyUrls(settings);

        routes.MapPageRoute("NewsDefault", "news", "~/news/news.aspx");

    }
}
  

Ответ №1:

Найдено решение

Необходимо добавить routes.RouteExistingFiles = true;

 public static void RegisterRoutes(RouteCollection routes)
        {
            var settings = new FriendlyUrlSettings();
            settings.AutoRedirectMode = RedirectMode.Permanent;
            routes.EnableFriendlyUrls(settings);
            routes.RouteExistingFiles = true;

            routes.MapPageRoute("NewsDefault", "news", "~/news/news.aspx");
        }