【问题标题】:Replace MVC Application Part and Razor File Providers in runtime在运行时替换 MVC 应用程序部件和 Razor 文件提供程序
【发布时间】:2018-03-04 19:49:07
【问题描述】:

我有一个 WebAPI/MVC 应用程序,它使用嵌入式控制器和视图加载单独的插件程序集,并将它们放入 MVC PartManager。这工作正常,但现在我希望能够在运行时交换这些部分而无需重新启动服务器。我可以在旧部件上使用 PartManager.Remove 并在新部件上使用 Add,但这似乎还不够。调用控制器时,我仍然会从旧部分的旧控制器中得到响应。

除了在 PartManager 中添加部件外,我还在 Configure 上的 RazorViewEngineOptions 中添加了 EmbeddedFileProvider,因为仅添加 AssemblyPart 似乎不足以让 Razor 引擎找到视图(不确定我这样做是否正确)。但我不知道我是否可以在运行时替换这个 Razor-fileprovider?我还没有找到方法。

无论如何,做这一切的首选方式是什么,我的意思是用控制器、视图和静态资源加载/替换 dll。我是否走在正确的轨道上?

【问题讨论】:

    标签: asp.net-mvc razor


    【解决方案1】:

    我认为 Razor 视图引擎只配置一次,因此您以后无法更改它们。

    可以做的就是

    • 运行多个视图引擎,
    • 根据 URL 在它们之间进行选择(如您的情况 - 您想为一个控制器使用不同的引擎)。

    这在 Scott Hanselsman 的 blog post 的 CUSTOMMOBILEVIEWENGINE 部分中有所描述。他所做的是为不同的设备使用不同的视图引擎,但您可以根据自己的目的调整该技术。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-05
      • 1970-01-01
      • 2011-08-21
      相关资源
      最近更新 更多