Как сопоставить несколько маршрутов контроллера ядра .net ⇐ 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
В настоящее время я сопоставляю маршруты своего контроллера следующим образом:
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
Мобильная версия