将控制器添加到 .Net Core 3.1 的 Razor 组件库
Add controller to a Razor Component Library for .Net Core 3.1
我正在迁移到 MVC Core 3.1,幸运的是在我不得不迁移 RCL 之前它并不难。
在 RCL 中,我包括了一些通用控制器,为了使用 Controller
基础 class 和 IActionResult
类型,我使用了 Nuget Microsoft.AspNetCore.Mvc.Abstraction
但它是仅适用于 .net Core 2.2。
为什么我在 Nuget 存储库中找不到较新的 3.1 版本?
当我导航到 IActionResult
的定义时,我看到一个版本为 3.1.0 的文件,所以我想应该有一种方法可以引用它而不是 2.2.
该项目基于 NetStandard2.0
,我手动将其更改为 netcoreapp3.1
并添加了对 Microsoft.AspNetCore.App
的引用。
<FrameworkReference Include="Microsoft.AspNetCore.App" />
能够在 3.1
上使用 Controllers
和 MVC 框架的任何其他功能
- 创建 RCL 项目
- 编辑
.csProj
文件并进行适当的更改,使其看起来像这样:
<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<RazorLangVersion>3.0</RazorLangVersion>
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
</PropertyGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Components" Version="3.1.3" />
<PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="3.1.3" />
</ItemGroup>
</Project>
我正在迁移到 MVC Core 3.1,幸运的是在我不得不迁移 RCL 之前它并不难。
在 RCL 中,我包括了一些通用控制器,为了使用 Controller
基础 class 和 IActionResult
类型,我使用了 Nuget Microsoft.AspNetCore.Mvc.Abstraction
但它是仅适用于 .net Core 2.2。
为什么我在 Nuget 存储库中找不到较新的 3.1 版本?
当我导航到 IActionResult
的定义时,我看到一个版本为 3.1.0 的文件,所以我想应该有一种方法可以引用它而不是 2.2.
该项目基于 NetStandard2.0
,我手动将其更改为 netcoreapp3.1
并添加了对 Microsoft.AspNetCore.App
的引用。
<FrameworkReference Include="Microsoft.AspNetCore.App" />
能够在 3.1
上使用Controllers
和 MVC 框架的任何其他功能
- 创建 RCL 项目
- 编辑
.csProj
文件并进行适当的更改,使其看起来像这样:
<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<RazorLangVersion>3.0</RazorLangVersion>
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
</PropertyGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Components" Version="3.1.3" />
<PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="3.1.3" />
</ItemGroup>
</Project>