Когда я использую asp-controller и asp-action в теге для другого действия, отличного от текущего, в представлении, вызываемом методом контроллера, с [Route]
атрибут, сгенерированная ссылка имеет пустой атрибут href
.Странное поведение между tag-помощниками и атрибутом Route в asp.net 5 MVC6
В контроллере:
public class ForumController : Controller
{
[Route("[action]/{sectionId:int}")]
public async Task<IActionResult> ShowSection(int sectionId)
{
//some code
}
}
В Вид:
<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:
<a href="">Index</a>
<a href="/ShowSection/1">Général</a>
Как вы можете видеть, что первая ссылка генерируется неправильно. Все ссылки, которые нацелены на другое действие, чем действие currenct, генерируются с помощью пустого тега href
.
Когда я извлекаю [Route] атрибут действия ShowSection:
<a href="/Forum">Index</a>
<a href="/Forum/ShowSection?sectionId=1">Général</a>
Как вы можете видеть, ссылки правильно генерируется.
Как исправить это, сохраняя мои атрибуты [Route]
(или с альтернативой)?
Показать действие 'Index()' вместе с регистрацией маршрутизации в 'Startup.cs' – haim770