我的链接标记助手在迁移到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>
答案 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 一切都很好。