Итак, я определил маршрут по умолчанию в моем 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
?