В AspNetCore 3.0 мы можем использовать статическую и динамическую маршрутизацию. Динамическая маршрутизация, кажется, не в наших случаях
В статической маршрутизации мы можем выбрать 2 различных подхода.
Первый подход - это жестко запрограммированные маршруты с ручным вводом.
Например, если мы хотим показать нашу страницу about в начале приложения, мы должны использовать варианты маршрута, как в коде ниже в контроллере . Этот вариант маршрутов содержит http://localhost:5000 или http://localhost:5000/about,, все URL будут маршрутизироваться относительно действия индекса контроллера.
Похоже, что ваши настройки контроллера About настроены для использования чего-то вроде этого.
[Route("")]
[Route("About")]
public IActionResult Index()
{
return View();
}
Второй подход - централизованные маршруты при запуске
Вы должны указать приложению, какой шаблон маршрута будет использоваться при запуске приложения .
Что ж, это довольно просто, и вы должны увидеть, когда вы создадите новое приложение mvc для ядра asp.net.
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
Отлично! мы говорим, используйте этот шаблон в URL
"{controller = Home} / {action = Index} / {id?}"
Позвольте мне объяснить вам;
Первое имя контроллера, которое по умолчанию является Home ({controller = Home}) *
И затем имя действия (/), значение которого по умолчаниюравно
Index ({action = Index})
А затем (/) приходит идентификатор параметра, и это может быть
null (необязательно) ({id?})
Значения по умолчанию означают, когда мы не пишем что-либо в URL, которое будет использовать приложение маршрута. В маршруте по умолчанию мы используем home / index url и route, этоозначает, что если мы нажмем только http://localhost:5000, мы получим действие home / index.
В этом случае ваша проблема должна быть решена, выберите один из этих подходов.