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>
3 Réponses :
J'ai eu le même problème aujourd'hui sur un nouveau projet AspNet Core 2.2 créé à l'aide du modèle MVC intégré. Les balises n'ont pas été générées dans le HTML.
modification de ce qui suit
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
à
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
Fonctionne et les balises sont maintenant rendues dans le HTML, j'ai fait quelques recherches et il semble que cela ait été soulevé comme un problème dans AspNetCore 2.2 . Ils mentionnent qu'il a été corrigé dans AspNetCore 3.0.0-preview3 .
Comme mentionné ici: https://github.com/aspnet/AspNetCore/issues/5055 et ici https://github.com/aspnet/AspNetCore/issues/6471 < / a>
Si vous devez utiliser AspNetCore 2.2, une solution de contournement temporaire, si elle est viable, consiste à modifier ce qui suit dans votre Startup.cs
comme mentionné sur le problème soulevé.
services.AddMvc (options => options.EnableEndpointRouting = false)
Je suis assez nouveau dans cette technologie et j'ai eu le même problème. Après avoir ajouté
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers @addTagHelper *, MyNameSpace
dans ViewImports.cshtml, comme mentionné ici https: // docs.microsoft.com/en-us/aspnet/core/mvc/views/tag-helpers/authoring?view=aspnetcore-2.2 tout allait bien.
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.
Pour toutes les vues, ajoutez cette ligne sur l'en-tête de _Layout.cshtmml@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
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 a>
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);