将控制器添加到 .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>