我有一个定义MVC Razor视图的库。例如\Views\Default\Index.cshtml
。并且我们在.csproj
中使用此配置来在项目中重复使用这些视图:
<ItemGroup>
<EmbeddedResource Include="Views\**\*.cshtml" />
</ItemGroup>
现在,当我们编译库DLL时,我们可以使用ILSpy确保我们的chtml
剃刀视图实际上嵌入在Resources
文件夹内的DLL文件中。
我们在ASP.NET Core MVC Web应用程序中使用此库,以重用.cshtml
文件。
我们使用以下代码行将该库注册为搜索视图的地方:
services.Configure<MvcRazorRuntimeCompilationOptions>(options =>
{
foreach (var assembly in assemblies)
{
options.FileProviders.Add(new EmbeddedFileProvider(assembly));
}
});
这将在ASP.NET Core MVC 2.2中运行。但是升级到3.0版后,现在抱怨:
The view 'Index' was not found. The following locations were searched:
/Views/Default/Index.cshtml
/Views/Shared/Index.cshtml
/Pages/Shared/Index.cshtml
这是怎么了?
更新:该问题中提到的所有内容均已被我们证明,这是4年前的问题,与.NET 3.0无关。同样,这个问题也与嵌入式资源无关。这是关于同一应用程序中的视图的。