Маршрутизация AspNet Core MVC с разными именами параметров - PullRequest
0 голосов
/ 25 января 2019

Итак, я определил маршрут по умолчанию в моем Startup.cs, который выглядит примерно так:

app.UseMvc(routes =>
{
    routes.MapRoute(
        "default",
        "{controller=Home}/{action=Index}/{id?}");
    routes.MapRoute(
        "api",
        "Api/{controller=Home}/{action=Index}/{id?}");
});

Я пытаюсь расширить маршрут по умолчанию для сопоставления с моими действиями, которые не используют id в качестве имени параметра.

Например, у меня есть метод, подобный следующему:

public async Task<IActionResult) Edit(UserRequest request) 
{
    // do stuff
}

Раньше мы просто использовали id для этого вызова, но с тех пор мы расширили безопасность и создали несколько пользовательских ActionFilters, которые выполняют некоторые закулисные проверки. Я уже создал пользовательский механизм связывания моделей, который прекрасно работает, если мы сохраним имя параметра UserRequest как id, но как только мы изменим его на что-то еще, маршрутизация не сможет правильно отобразить его, и вместо этого мы просто получить нулевое значение.

Как мне изменить маршрут по умолчанию, чтобы разрешить несколько разных имен параметров вместо id?

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