应该如何使用CompiledRazorAssemblyPart加载Razor视图?

时间:2018-06-23 18:12:46

标签: asp.net asp.net-core

我有一个Razor类库,在ASP.NET Core MVC项目中用作参考。该应用程序运行正常。我删除了引用,并使用CompiledRazorAssemblyPart将dll添加到了应用程序部件中。这是示例代码Loading Razor Class Libraries as plugins

当我使用RCL作为参考时,相同的路由不再起作用。我应该使用其他设置来加载视图吗?

1 个答案:

答案 0 :(得分:3)

我在使用CompiledRazorAssemblyPart时遇到了类似的问题,结果是我将我的RCL程序集(例如MyPlugin.dll)添加为public static void AddPluginApplicationPart(IMvcBuilder mvcBuilder, Assembly assembly) { mvcBuilder.AddApplicationPart(assembly); Assembly viewsAssembly = null; try { viewsAssembly = Assembly.Load(assembly.GetName().Name + ".Views"); } catch (FileNotFoundException) { } if (viewsAssembly != null) { // Adding this application part allows us to use compiled razor views from this plugin var viewsApplicationPart = new CompiledRazorAssemblyPart(viewsAssembly); mvcBuilder.ConfigureApplicationPartManager(manager => manager.ApplicationParts.Add(viewsApplicationPart)); } } ,而您需要添加.Views程序集(例如MyPlugin.Views.dll)。下面是我现在用来添加主Web应用程序项目未引用的插件程序集的代码示例。请注意,您可能仍希望将插件程序集作为控制器等的标准应用程序部分。

$pdf->Output('example_038.pdf', 'F');