Putting Views and Controllers in a different project than the ASP.NET Core Web app

Twe*_*nty 6 c# razor asp.net-core-mvc asp.net-core asp.net-core-3.0

I am trying to split up my ASP.NET Core 3.0 pre-release 9 MVC app into different projects. For example, I\xe2\x80\x99d like to have everything related to one subdomain go into a project called Website.SubdomainA and the other one into Website.SubdomainB.

\n\n

我尝试使用 Razor 类库来完成此任务。根据MSDN,这些应该能够包含以下内容:

\n\n
\n

Razor 视图、页面、控制器、页面模型、Razor 组件、视图组件和数据模型可以构建到 Razor 类库 (RCL) 中。

\n
\n\n

所以我继续创建了一个“RCL”,如下所示:

\n\n
<Project Sdk="Microsoft.NET.Sdk.Razor">\n  <PropertyGroup>\n    <TargetFramework>netstandard2.1</TargetFramework>\n    <RazorLangVersion>3.0</RazorLangVersion>\n  </PropertyGroup>\n</Project>\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后我复制了我的控制器和视图\xe2\x80\x94,但是由于某种原因,它找不到任何包含基类的程序集ControllerRouteAttribute以及包含在Microsoft.AspNetCore.Mvc namespace.

\n\n

此外,我的视图无法编译,因为它们找不到所需的程序集,以及类似的东西Layout = "Test" get marked red.

\n\n

我错过了一些明显的东西吗?

\n

Tao*_*hou 7

要创建 Razor 类库,您需要添加以下AddRazorSupportForMvc内容*.csproj

<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <AddRazorSupportForMvc>true</AddRazorSupportForMvc>
</PropertyGroup>
<ItemGroup>
    <FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)