Ядро 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>
Другие вопросы по тегам