将视图和控制器放在与 ASP.NET 核心 Web 应用程序不同的项目中
Putting Views and Controllers in a different project than the ASP.NET Core Web app
我正在尝试将我的 ASP.NET Core 3.0 pre-release 9 MVC 应用拆分成不同的项目。例如,我希望将与一个子域相关的所有内容都放入一个名为 Website.SubdomainA
的项目中,将另一个子域放入 Website.SubdomainB
.
我试图用 Razor Class 库来完成这个。根据MSDN,这些应该可以包含以下内容:
Razor views, pages, controllers, page models, Razor components, View components, and data models can be built into a Razor class library (RCL).
所以我继续创建了一个 'RCL',它看起来像下面这样:
<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<RazorLangVersion>3.0</RazorLangVersion>
</PropertyGroup>
</Project>
然后我复制了我的控制器和视图——但是,出于某种原因,它找不到任何包含基础 类 的程序集,例如 Controller
、RouteAttribute
以及 Microsoft.AspNetCore.Mvc
命名空间中包含的所有其他内容。
此外,我的视图无法编译,因为它们找不到所需的程序集,Layout = "Test"
之类的东西被标记为红色。
我是不是遗漏了什么明显的东西?
尝试使用 <TargetFramework>netcoreapp3.0</TargetFramework>
。请参阅上面链接的问题中的 this comment。
We are removing the netstandard2.0
from most Microsoft.AspNetCore.* assemblies.
要创建 Razor Class 库,您需要在 *.csproj
中附加 AddRazorSupportForMvc
,如下所示:
<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
</PropertyGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
</Project>
我正在尝试将我的 ASP.NET Core 3.0 pre-release 9 MVC 应用拆分成不同的项目。例如,我希望将与一个子域相关的所有内容都放入一个名为 Website.SubdomainA
的项目中,将另一个子域放入 Website.SubdomainB
.
我试图用 Razor Class 库来完成这个。根据MSDN,这些应该可以包含以下内容:
Razor views, pages, controllers, page models, Razor components, View components, and data models can be built into a Razor class library (RCL).
所以我继续创建了一个 'RCL',它看起来像下面这样:
<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<RazorLangVersion>3.0</RazorLangVersion>
</PropertyGroup>
</Project>
然后我复制了我的控制器和视图——但是,出于某种原因,它找不到任何包含基础 类 的程序集,例如 Controller
、RouteAttribute
以及 Microsoft.AspNetCore.Mvc
命名空间中包含的所有其他内容。
此外,我的视图无法编译,因为它们找不到所需的程序集,Layout = "Test"
之类的东西被标记为红色。
我是不是遗漏了什么明显的东西?
尝试使用 <TargetFramework>netcoreapp3.0</TargetFramework>
。请参阅上面链接的问题中的 this comment。
We are removing the
netstandard2.0
from most Microsoft.AspNetCore.* assemblies.
要创建 Razor Class 库,您需要在 *.csproj
中附加 AddRazorSupportForMvc
,如下所示:
<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
</PropertyGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
</Project>