Ядро asp.net и идентификатор asp-route-id
Я создал контроллер контактов с этой подписью:
public IActionResult Index(string id)
Ничего особенного в таблице маршрутов:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
На своем домашнем экране я попытался создать ссылку на контакт / индекс:
<a asp-controller="Contact" asp-route-id="3255">Contact me</a>
Сгенерированная ссылка выглядит нормально и переходит к правильному действию. С или без asp-действия сгенерированная ссылка:
<a href="/Contact/Index/3255">Contact me</a>
Но идентификатор не установлен. Но когда я копирую ссылку и делаю "вставить и перейти", параметр id устанавливается. Это работает также, если я просматриваю источник страницы и нажимаю на сгенерированную ссылку. Это не работает, когда я нажимаю на ссылку на странице.
Можете ли вы сказать мне, что случилось, пожалуйста?
1 ответ
Учитывая настроенные маршруты,
маршрут должен включать action
<a asp-controller="Contact"
asp-action="Index"
asp-route-id="3255">Contact me</a>
Который должен генерировать
<a href="/Contact/Index/3255">Contact me</a>