【问题标题】:VirtualPathProvider equivalent in ASP.NET 5/MVC6?ASP.NET 5/MVC6 中的 VirtualPathProvider 等效项?
【发布时间】:2015-12-01 15:24:10
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

  • 我的项目中有便携式区域,但我仍然不知道如何更新到 MVC6

标签: c# razor asp.net-core asp.net-core-mvc


【解决方案1】:

好的,我通过挖掘源代码找到了答案。通过覆盖 Razor 视图引擎选项类上的文件提供程序,我可以从任何我想要的位置加载视图:

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多