Как сопоставить несколько маршрутов контроллера ядра .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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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