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)?
Mostra l'azione 'Index()' insieme alla registrazione del routing nel tuo 'Startup.cs' – haim770