在ASP.NET Core MVC中找不到嵌入式视图

moh*_*eli 5 asp.net-mvc reusability razor

我无法重用来自另一个程序集的cshtml文件。这是裸露的样本:

  • 使用默认模板(使用Web应用程序,模型视图控制器)创建一个ASP.NET Core Web应用程序项目,并将其命名 ViewReuse
  • 添加一个名为的类库 ViewLibrary
  • Microsoft.AspNetCore.All在ViewLibrary中添加对metapackage 的引用
  • 创建一个名为Views的文件夹,然后创建另一个名为Shared的文件夹,并在其中创建一个简单的cshtml文件,名为 ReusedLayout.cshtml
  • 添加EmbeddedResources Include='Views\**\*.cshtml'到ViewLibrary的csproj,以将ViewLibrary.dll中的所有视图包括在内
  • 在ViewReuse项目的Startup.cs中,将MVC服务的配置更改为 services.AddMvc().ConfigureApplicationPartManager(p => { p.ApplicationParts.Add(new AssemblyPart(typeof(ReusedController).Assembly)); });
  • 更改About.cshtml为使用ViewLibrary中的布局:Layout = "/Views/Shared/ReusedLayout.cshtml"
  • 然后运行该应用程序,并导航到/home/about

对我来说,我遇到了这个错误:

InvalidOperationException:找不到布局视图“ /Views/Shared/ReusedLayout.cshtml”。搜索了以下位置:/Views/Shared/ReusedLayout.cshtml

我做错了什么?我该如何解决这个问题?

isa*_*eid 0

尝试右键单击视图文件,然后在属性中更改为嵌入资源。