Counsellorben получил ответ раньше, чем я. Если вам нужны именно эти URL-адреса и эти точные методы, то это единственный способ. Вы можете уменьшить количество маршрутов, объединив GetUser и GetAllUsers в одно действие с обнуляемым идентификатором, например
routes.MapRoute(
"GetUser",
"users/{id}",
new { controller = "Users", action = "GetUser", id = UrlParameter.Optional}
new { id = @"\d+" } // Route constraint
);
Который вызвал бы метод GetUser(int? id)
Если вы хотите использовать URL-адрес для установки контроллера и автоматически вызываемого действия, вам потребуется что-то вроде
routes.MapRoute(
"GetUser",
"{controller}/{action}/{id}",
new { id = UrlParameter.Optional}
new { id = @"\d+" } // Route constraint
);
Но для этого потребуется изменить нужные URL-адреса, чтобы /users/getuser/1234
перешел на GetUser(int id)
, а /users/getallusers
- на GetAllUsers()
. Кстати, это не проверено - могут быть небольшие ошибки.