Чем заменить MvcMiddleware в ASP. NET Core 3.0+? - PullRequest
0 голосов
/ 04 августа 2020

В ASP. NET Core 3.0+, они представили EndpointRoutingMiddleware и EndpointMiddleware.

Хочу узнать Какая замена MvcMiddleware в ASP. NET Core 3.0 +?

Это Endpoints => MapControllerRoute? (MapControllerRoute = MvcMiddleware)

app.UseEndpoints(endpoints =>
{
    endpoints.MapRazorPages();
    endpoints.MapControllerRoute( /* HERE */
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
});

1 Ответ

0 голосов
/ 04 августа 2020

Вы в основном правы, маршрутизация конечных точек существенно изменила способ работы маршрутизации. Раньше промежуточное ПО не знало, какое действие в MVC будет обрабатывать запрос, потому что лог выбора действия c вызывался изнутри MvcMiddleware. Теперь с маршрутизацией конечных точек промежуточное ПО, размещенное после app.UseRouting(); и перед app.UseEndpoints();, может знать, какова конечная конечная точка. Это также устранило необходимость дублировать такие вещи, как политики CORS.

Сопоставление MVC маршрутов выполняется с помощью MapControllerRoute(), как вы это сделали. Маршруты атрибутов, определенные, например, с помощью [HttpGet], отображаются также при вызове MapControllerRoute. Если ваше приложение использует только маршруты атрибутов, вы можете полностью опустить аргументы для MapControllerRoute.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...