【发布时间】:2019-07-10 08:56:04
【问题描述】:
迁移到 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>
【问题讨论】:
-
嗯,这真的很奇怪,它显然对其他人有用。你的 csproj 文件包含什么?
-
生成了什么 html?
-
那个 Windows.Compatability 包版本看起来很狡猾,你也可以显示你的 _ViewImports
-
为什么 Windows.Compatabilty 版本不可靠?在我看来很好。来自 Microsoft 的最新版本...nuget.org/packages/Microsoft.Windows.Compatibility
-
我必须禁用端点路由才能使其工作:services.AddMvc(config => { config.EnableEndpointRouting = false; }) .SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
标签: asp.net-core asp.net-core-tag-helpers asp.net-core-2.2