gpt4 book ai didi

asp.net-mvc - 在运行时替换 MVC 应用程序部分和 Razor 文件提供程序

转载 作者:行者123 更新时间:2023-12-01 16:31:28 25 4
gpt4 key购买 nike

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

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

无论如何,做这一切的首选方法是什么,我的意思是用 Controller 、 View 和静态资源加载/替换 dll。我走在正确的轨道上了吗?

最佳答案

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

可以做的是

  • 运行多个 View 引擎,
  • 根据 URL 在它们之间进行选择(如您的情况 - 您希望为一个 Controller 使用不同的引擎)。

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

关于asp.net-mvc - 在运行时替换 MVC 应用程序部分和 Razor 文件提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49099693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com