나는 1000s의 질문과 블로그를 통해 트롤링을 해왔지만 여전히 댐 라우팅을 완전히 이해하지 못했습니다!한 방향으로 .GIF 라우팅, 나머지 MVC 4 사이트 다른 사이트
Scott Hanselman's blog의 줄을 따라 특정 MVC4 사이트가 정상적으로 작동하는 동안 특정 호출을 .GIF로 사용자 지정 HttpHandler로 라우팅하려고합니다. 나는 거기 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의에서 나는
http://mysite.com/analytics/a.gif 경로를 올바르게 이제
<handlers>
...
<add name="analytics" verb="*" path="analytics/a.gif" type="Lms.Analytics.AnalyticsHandler, Lms.Analytics" preCondition="managedHandler" />
</handlers>
이런 식으로,이 모든 그러나 내 모든 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 오류가 발생합니다.
나는 바보 같은 짓을하고 있어야하고, 그냥 보지 못한다. 사전에
덕분에
흠, 이것은 효과가 있을지 모르지만 내가 추구하고 싶은 길이 아니 었습니다. 나는 그것이 HttpHandlers에서 처리 될 수 있다고 확신했다. 미안해. 나는 그것을 시도하지 않았고, 그것을 다른 방법으로 해결했다. – Martyn
어떻게 해결 했습니까? 솔루션을 공유해야하므로 우리 모두가 그것을 볼 수 있고 올바른 것으로 표시 할 수 있습니다 (2 일 후에 수행 할 수있는 작업, 나는 생각합니다). – JotaBe
제가 가지고 있습니다 :) 아래 참조 – Martyn