2
votes

L'assistant de balise de lien ne fonctionne pas dans asp.net core 2.2

Mes assistants de balises de lien ne fonctionnent plus correctement après la migration vers asp.net core 2.2.

<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>

Cela fonctionne bien lorsque je règle la version de compatibilité sur 2.1, mais produit un href vide lorsque défini sur la version de compatibilité 2.2.

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

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

J'ai suivi les étapes Migrer d'ASP.NET Core 2.1 vers 2.2

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

Fichier projet:

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


5 commentaires

Hmm c'est vraiment bizarre, ça marche évidemment pour d'autres personnes. Que contient votre fichier csproj?


Quel html est généré?


Cette version du package Windows.Compatability semble douteuse, vous pouvez également afficher votre _ViewImports


Pourquoi Windows.Compatabilty Verdion est-il douteux? Cela me semble correct. Dernière version de Microsoft ... nuget.org/packages/Microsoft.Windows.Compatibility


J'ai dû désactiver le routage des points de terminaison pour le faire fonctionner: services.AddMvc (config => {config.EnableEndpointRouting = false;}) .SetCompatibilityVersion (CompatibilityVersion.Version_2_2);


3 Réponses :



2
votes

1 commentaires

Je pense que cela répond si le Taghelper n'est pas du tout détecté dans la vue Razor, pas s'il est détecté mais ne fonctionne pas comme prévu en utilisant les assistants de balises intégrés dans la version 2.2.



1
votes

Pour toutes les vues, ajoutez cette ligne sur l'en-tête de _Layout.cshtmml

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers


0 commentaires