2017-05-11 1 views
0

J'utilise des zones dans mon application Web .NET Core. Je tente aussi d'utiliser le Anchor Tag Aide s au lieu de laide à la recherche @ notation comme ceci:Comportement impair avec l'aide d'une balise d'ancre

<a asp-area="Quizzes" asp-controller="Home" asp-action="Index">Quizzes</a> 

Mais quand ils sont rendus en HTML, je vois cette URL:

/Home/Index?area=Quizzes 

Pourquoi N'est-ce pas ça qui sort comme l'habituel

/Quizzes/Home/Index 

qu'est-ce qui me manque ici.

+0

Non, cela ne change pas comment il est rendu. –

+0

Je n'ai pas encore utilisé Core, mais la première question à laquelle je peux penser est: avez-vous enregistré votre région (s)? https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/areas –

+0

Oui, il existe un seul itinéraire pour toutes les zones –

Répondre

0
app.UseMvc(routes => 
    { 

    //Order Matters... 
    routes.MapRoute(name: "areaRoute", 
    template: "{area:exists}/{controller=Home}/{action=Index}"); 
       ///^^^^ required 


    routes.MapRoute(
     name: "default", 
    template: "{controller=Home}/{action=Index}/{id?}"); 
    }); 

ensuite sur le contrôleur pour Home il doit être attribué à [Area("Quizzes")] qui devrait être dans le dossier du contrôleur dans la zone d'-> Quiz, ainsi que tous les autres contrôleurs qui doivent être dans cette zone.

+0

L'ordre est important, mais cela n'a aucun effet sur ce que je décris. Mon itinéraire a été comme ça depuis le début (quand j'ai ajouté ma première zone). La seule différence est que ma route de zone termine le modèle avec/{id?} –