укажите asp.net основной пользовательский маршрут

#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