Я следующий код, чтобы зарегистрировать маршрут с моей пользовательской routehandler:MVC Пользовательские RouteHandler не стреляя для файлов
routes.Add(New Route(path & "/{assembly}/{*resource}", New RouteValueDictionary(), New RouteValueDictionary(New With { _
Key .assembly = AssemblyName _
}), New EmbeddedContentRouteHandler(PluginAssembly, AssemblyName & "." & path)))
Это позволяет мне получить доступ к внедренных ресурсов в скомпилированный DLL, например:/Content/PluginAssemblyName/File.name
В MVC 3 и 4 функция ProcessRequest срабатывает каждый раз, но из MVC 5 она не работает, она срабатывает только при указании каталога, что, очевидно, даст мне исключение для ссылки на null, потому что я ищу для файлов, а не каталогов (деноминированных, очевидно, в виде файла)
Я пробовал исключить .css и .js, чтобы попытаться посмотреть, не срабатывает ли мой ручной маршрут, ничего. Тестирование этого в проекте MVC 4 отлично работает.
Начиная отрывать волосы.
Любые идеи, почему RouteHandler не срабатывает в MVC 5, но делает это в MVC 4 и 3?
(Это вставные проект MVC с помощью MEF, что я привел к MVC 5 по частям, так как путь обновления не удавался слишком хорошо)
Его, вероятно, та же причина и решение вопроса, что я ответил здесь http://stackoverflow.com/questions/19972092/asp-net-mvc-route-with-values-before-the-controller- and-no-trailing-slash/19978599 # 19978599 – LostInComputer
Спасибо, имеет большой смысл, я думаю, я никогда не был на .NET 4.0 в моем проекте MVC, даже если он его нацеливал? Пожалуйста, добавьте свой ответ, ссылаясь на отвеченный вопрос, в своем комментарии здесь, чтобы я мог его пометить. – user3036342
Конфигурация IIS или web.config, вероятно, все еще была на MVC3. Я добавлю свой ответ, если он решит вашу проблему :) – LostInComputer