Kiedy używam asp-controller i asp-action w tagu <a>
dla innej akcji niż bieżąca, w widoku wywołanym przez metodę kontrolera z [Route]
atrybut wygenerowany link ma pusty atrybut href
.Dziwne zachowanie między tagami-pomocnikami a atrybutem trasy w asp.net 5 MVC6
w kontrolerze:
public class ForumController : Controller
{
[Route("[action]/{sectionId:int}")]
public async Task<IActionResult> ShowSection(int sectionId)
{
//some code
}
}
w widoku:
<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>
Generated html:
<a href="">Index</a>
<a href="/ShowSection/1">Général</a>
As widać, pierwszy link nie jest generowany poprawnie. Wszystkie linki kierujące do innej akcji niż akcja kursowa są generowane z pustym znacznikiem href
.
Kiedy usunąć [trasy] atrybut działania ShowSection:
<a href="/Forum">Index</a>
<a href="/Forum/ShowSection?sectionId=1">Général</a>
Jak widać, linki są poprawnie wygenerowany.
Jak mogę to naprawić, zachowując moje atrybuty [Route]
(lub z alternatywą)?
Pokaż swoje działanie 'Index()' wraz z rejestracją routingu w twoim 'Startup.cs' – haim770