Почему этот игнорируют вызов соответствующим этим запросам?

StackOverflow https://stackoverflow.com//questions/10673917

Вопрос

У меня есть локализация HttPhandler, которая работает в контексте моей папки содержимого ASP.NET MVC2 (часть того, что она делает, это компиляция файлов, которые находятся в / Content / CSS). Мой маршрут по умолчанию для этого конкретного набора запросов выглядит так:

context.Routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

context.MapRoute(
    "Area_default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional },
    new { controller = new VirtualDirectoryConstraint("VDirectory1") },
    new string[] { "Namespace.One.MVC" }
);
.

(как в сторону - я не думаю, что это актуально, но на всякий случай - VirtualDirectoryConstraint отказывается от совпадения на этом маршруте, если запрос не исходит от переданного пути / виртуальный каталог)

С этой конфигурацией вызов для http://server.net/VDirectory1/Content/css/LessCompiler.axd не удается, потому что нет класса ContentController. Все хорошо и хорошо.

Когда я добавляю

context.Routes.IgnoreRoute("{Content}/{*pathInfo}");
.

Это вызов добится успеха, но последующие вызовы

http://server.net/VDirectory1/Localization/ClientScript/en-US.js
.

и

http://server.net/VDirectory1/Authorization/ClientScript
.

не удается. Глядя на инструмент RouteDebugger Phil Haack, эти звонки соответствуют контенту INGLOREROROUTE MARATE:

True    {Content}/{*pathInfo}   (null)  (null)  (null)
. Таким образом, и поэтому не перепадуются на локализаторController и авторизациюController соответственно.

Ясно, что я не понимаю что-то о том, как предполагается использовать IGNOREROUTE, и почему этот конкретный INGUSOREROUTE соответствует этим запросам. Что мне не хватает?

Это было полезно?

Решение

не должен ваша невежество использовать Content вместо {Content}?

context.Routes.IgnoreRoute("Content/{*pathInfo}");
.

На данный момент {Content}, вероятно, расширяется как переменная к ним, что делает PathInfo сопоставить все.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top