当前位置:  开发笔记 > 编程语言 > 正文

ASP.NET 5/MVC6中的VirtualPathProvider等价物?

如何解决《ASP.NET5/MVC6中的VirtualPathProvider等价物?》经验,为你挑选了1个好方法。

我正在研究将ASP4/MVC4应用程序迁移到ASP5/MVC6的迁移策略.我们当前的实现依赖于将cshtml视图作为DLL的嵌入资源加载,我们使用VirtualPathProvider来查找这些cshtml文件.

不幸的是,HostingEnvironment.RegisterVirtualPathProvider似乎已经从MVC6中消失了.我能找到的最接近的是IEnvironment.WebRootFileProvider,它是一个IFileProvider.所以我编写了一个测试类来查看它是否可行,不幸的是,我编写的IFileProvider永远不会查询CSHTML文件.我收到所有.JS,.CSS等文件的请求,但没有.CSHTML的请求.

我在这里寻找的是能够挂钩剃刀引擎,并在请求视图时提供从嵌入式资源(或实际上,任何其他来源)加载的CSHTML文件.我应该在这看什么?

谢谢!



1> Ron Penton..:

好吧,我通过在源代码中挖掘来解决这个问题.我可以通过覆盖Razor View Engine选项类上的文件提供程序来从任何我想要的地方加载视图:

            services.AddMvc().AddRazorOptions(x => x.FileProvider = new EmbeddedFileProvider(typeof(Startup).Assembly));

现在唯一的问题是,似乎无法通过Visual Studio将资源嵌入到ASP.NET 5 DLL中...

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有