ASP.NET маршрутизация ignoreRoute не работает - PullRequest
0 голосов
/ 02 июля 2010

Я не могу исключить несуществующие файлы из системы маршрутизации.Я имею дело с этим кодом в сценарии веб-форм:

public static void RegisterRoutes(RouteCollection routes)
{   
  routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
  routes.IgnoreRoute("{resource}.gif/{*pathInfo}");
  routes.IgnoreRoute("{resource}.jpg/{*pathInfo}");   
  Route r = new Route("{*url}", new MyRouteHandler());
  routes.Add(r);
}

Когда я отлаживаю, путь

public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
    string path;

    IHttpHandler page;

    try
    {
        path = requestContext.RouteData.GetRequiredString("url");
        LogFile(requestContext, path);
    }

все еще содержит несуществующие файлы gif, jpg и т. Д. Я хочу исключить все файлы, которыеиметь расширение, если это возможно

Что-то не так с кодом выше?Является ли порядок правильным, то есть добавить маршруты. Запись IgnoreRoute перед добавлением маршрута в RouteCollections?

Ответы [ 2 ]

1 голос
/ 24 января 2011

В веб-формах вы можете использовать StopRoutingHandler .В следующем примере маршрутизация будет игнорироваться для файлов в папке / images, таких как http://yoursite.com/images/xyz.jpg

routes.Add(new Route("images/{resource}", new StopRoutingHandler())); 
0 голосов
/ 02 июля 2010

IgnoreRoute - это метод расширения ASP.NET MVC (System.Web.Mvc) - не работает в веб-формах.

Сделайте это:

routes.Add(new Route("{resource}.gif/{*pathInfo}", new MyIgnoreHandler()));

Сопоставьте другие маршруты сваш обычный обработчик.

Вы должны удалить тег "mvc" из этого вопроса.

...