链接标记帮助程序在asp.net core 2.2中不起作用

时间:2019-02-16 11:14:02

标签: asp.net-core asp.net-core-tag-helpers asp.net-core-2.2

我的链接标记助手在迁移到asp.net core 2.2之后不再正常工作。

 <a class="btn btn-outline-primary" asp-controller="MyController" asp-action="MyAction" asp-route-id="@Id">Link</a>

当我将兼容版本设置为2.1时,此方法工作正常,但当设置为兼容版本2.2时,将生成一个空的href。

<a class="btn btn-outline-primary" href="">Link</a>

我按照步骤Migrate from ASP.NET Core 2.1 to 2.2

 .SetCompatibilityVersion(CompatibilityVersion.Version_2_1);  --> Works

 .SetCompatibilityVersion(CompatibilityVersion.Version_2_2);  --> Doesn't work

项目文件:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <TypeScriptToolsVersion>2.8</TypeScriptToolsVersion>
    <LangVersion>7.2</LangVersion>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.2.2" />
    <PackageReference Include="Microsoft.Windows.Compatibility" Version="2.0.1" />
    <PackageReference Include="Sendgrid" Version="9.10.0" />
    <PackageReference Include="Stripe.net" Version="22.8.1" />
    <PackageReference Include="UAParser" Version="3.1.36" />
  </ItemGroup>

  <ItemGroup>
    <Folder Include="Data\Migrations\" />
  </ItemGroup>

</Project>

3 个答案:

答案 0 :(得分:1)

我今天在使用内置MVC模板创建的新AspNet Core 2.2项目中遇到了同样的问题。标签不是在HTML中生成的。

更改以下内容

y_pred

services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

工程和标签现在都以HTML呈现,我做了一些挖掘,看起来这已经成为AspNetCore 2.2中的一个问题。他们提到它已在AspNetCore 3.0中修复。

如此处所述:https://github.com/aspnet/AspNetCore/issues/5055和此处https://github.com/aspnet/AspNetCore/issues/6471

如果您需要使用AspNetCore 2.2,则可以采用临时解决方法,如果可行的话,请按照提出的问题在services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);中修改以下内容。

Startup.cs

答案 1 :(得分:1)

对于所有视图,将此行添加到 _Layout.cshtmml 的标题中:

apt-get

答案 2 :(得分:0)

我在这项技术上还很陌生,并且遇到了同样的问题。在我添加

之后
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, MyNameSpace
在ViewImports.cshtml中

,如此处所述 https://docs.microsoft.com/en-us/aspnet/core/mvc/views/tag-helpers/authoring?view=aspnetcore-2.2 一切都很好。