Прегледах 1000 въпроси и блогове и все още не разбирам напълно маршрута на язовир!
По линия на блога на Скот Хензелман се опитвам да насоча определено повикване към .GIF към персонализиран HttpHandler, докато останалата част от сайта MVC4 се държи нормално. Изминах 90% от пътя дотам.
Така че в моя RouteConfig имам
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.Add("AnalyticsRoute", new Route("analytics/a.gif", new AnalyticsRouteHandler()));
routes.MapRoute("Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional });
routes.RouteExistingFiles = true;
}
и в моя web.config имам
<handlers>
...
<add name="analytics" verb="*" path="analytics/a.gif" type="Lms.Analytics.AnalyticsHandler, Lms.Analytics" preCondition="managedHandler" />
</handlers>
Сега по този начин http://mysite.com/analytics/a.gif маршрутизира правилно и всички е доволен, но всичките ми ActionLinks се разрешават като http://mysite.com/analytics/a.gif?action=Index&controller=Category
Ако обърна реда в RouteConfig, т.е.
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional });
routes.Add("AnalyticsRoute", new Route("analytics/a.gif", new AnalyticsRouteHandler()));
routes.RouteExistingFiles = true;
}
Всички връзки се разрешават добре, но извикване на http://mysite.com/analytics/a.gif води до грешка 404?
Сигурно правя нещо глупаво и просто не го виждам?!
Благодаря предварително