2016-05-12 11 views
5

Quando uso asp-controller e asp-action in un tag <a> per un'altra azione rispetto alla corrente, in una vista richiamata da un metodo controller con [Route] attributo, il collegamento generato ha un attributo vuoto href.Strano comportamento tra tag-helper e attributo Route in asp.net 5 MVC6

Nel Controller:

public class ForumController : Controller 
{ 
    [Route("[action]/{sectionId:int}")] 
    public async Task<IActionResult> ShowSection(int sectionId) 
    { 
     //some code 
    } 
} 

Nella Vista:

<a asp-controller="Forum" asp-action="Index">Index</a> 
<a asp-controller="Forum" asp-action="ShowSection" asp-route-sectionId="@Model.ParentSection.Id">@Model.ParentSection.Name</a> 

HTML generato:

<a href="">Index</a> 
<a href="/ShowSection/1">Général</a> 

Come puoi vedere, il primo link non è generato correttamente. Tutti i link che hanno come target un'altra azione rispetto all'azione currenct vengono generati con un tag vuoto href.

Quando ho rimuovere l'attributo [percorso] dell'azione ShowSection:

<a href="/Forum">Index</a> 
<a href="/Forum/ShowSection?sectionId=1">Général</a> 

Come si può vedere, i collegamenti siano correttamente generati.

Come posso risolvere questo problema mantenendo gli attributi [Route] (o con un'alternativa)?

+0

Mostra l'azione 'Index()' insieme alla registrazione del routing nel tuo 'Startup.cs' – haim770

risposta

0

ho finalmente trovato (@ haim770 commento aiutato):

ho aggiunto un percorso attributo a tutti i miei controllori & azioni e ora funziona.

Problemi correlati