首页 > 解决方案 > 将控制器添加到 .Net Core 3.1 的 Razor 组件库

问题描述

我正在迁移到 MVC Core 3.1,谢天谢地,在我不得不迁移 RCL 之前并不难。

在 RCL 中,我包含了一些常见的控制器,为了使用Controller基类和IActionResult类型,我使用了 Nuget Microsoft.AspNetCore.Mvc.Abstraction,但它仅适用于 .net Core 2.2。

为什么我在 Nuget 存储库中找不到更新的 3.1 版本?

当我导航到定义时,IActionResult我会看到一个版本为 3.1.0 的文件,所以我想应该有一种方法可以引用它而不是 2.2。

标签: c#nugetasp.net-core-3.1razor-component-library

解决方案


该项目基于NetStandard2.0,我手动将其更改为netcoreapp3.1加上对Microsoft.AspNetCore.App.

<FrameworkReference Include="Microsoft.AspNetCore.App" />

能够Controllers在 3.1 上使用 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>

推荐阅读