Как сопоставить несколько маршрутов контроллера ядра .netC#

Место общения программистов C#
Гость
Как сопоставить несколько маршрутов контроллера ядра .net

Сообщение Гость »


В настоящее время я сопоставляю маршруты своего контроллера следующим образом:

var webApplication = builder.Build(); webApplication.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}"); Это отлично подходит для моего сценария по умолчанию, где я не указываю имя или идентификатор действия в параметрах. Например, работают следующие маршруты:

https://example.com.com https://example.com.com/Главная https://example.com.com/Books https://example.com.com/Books/Show/1 Однако я перехожу на более удобные для SEO имена для некоторых продуктов и вместо /1 хочу использовать /my-book-name. Однако я все еще хочу, чтобы старый способ вел себя так же. Я просто хочу иметь возможность печатать сейчас:

https://example.com.com/Books/Show/my-book-name Я не хочу делать это для каждого метода действия отдельно, поэтому я попробовал следующее:

var webApplication = builder.Build(); webApplication.MapControllerRoute("default-uri", "{controller}/Show/{uri}"); webApplication.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}"); Однако вышеописанное не работает, когда я вхожу

https://example.com.com/Books/Show/my-book-name Как мне достичь вышеперечисленного? Я использую .NET Core 8

Вернуться в «C#»