我有以下代码用我的自定义路由处理程序注册路由:
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 开始,它不会触发,它仅在我指定目录时触发,这显然会给我一个空引用异常,因为我正在寻找文件,而不是目录(命名,显然,由 . 作为文件应该)
我尝试排除 .css 和 .js 来尝试查看我的自定义路由处理程序是否会触发,什么也没有。在 MVC 4 项目中对此进行测试,效果很好。
开始扯我的头发。
任何想法为什么 RouteHandler 不会在 MVC 5 中触发,但在 MVC 4 和 3 中会触发?
(这是一个使用 MEF 的 Pluggable MVC 项目,由于升级路径不太顺利,因此我将其逐步引入 MVC 5)