#routing #asp.net-core
#маршруты #asp.net-core
Вопрос:
Я хотел бы указать пользовательский маршрут следующим образом: localhost:4444/code, где code — это случайный код, назначенный курсу. В настоящее время маршрутизация по умолчанию принудительно использует маршрут контроллера / действия / идентификатора. Я хотел бы привязать вышеуказанное к Courses / Details / Code, но предпочел бы не указывать / Courses / Details в маршруте, чтобы сделать его короче.
Ответ №1:
Для вас будут работать следующие маршруты.
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
routes.MapRoute(
name: "course_code",
template: "{id}",
defaults: new { controller = "Courses", action = "Details"});
});
Эти маршруты будут отображаться следующим образом:
HomeController.Index()
localhost:4444
localhost:4444/home
localhost:4444/home/index
CoursesController.Details("math101")
localhost:4444/math101
localhost:4444/courses/details/math101
Смотрите также: https://docs.asp.net/en/latest/fundamentals/routing.html