Я разрабатываю приложение ASP.Net WebApi и сталкиваюсь с некоторыми трудностями при маршрутизации. У меня есть следующий код в моем контроллере WebApi.
public class UserRegistrationServiceWebApiController : ApiController
{
[HttpPost]
public void RegisterUser(RegisterUser registerUser)
{
/*Some code here*/
}
[HttpPost]
public void ConfirmUserPassword(UserPasswordConfirmModel userPasswordData)
{
/*Some code here*/
}
}
В моем RouteConfig.cs я указал такие маршруты.
routes.MapHttpRoute(
name: "UserRegistrationApi",
routeTemplate: "api/{controller}/{action}/{firstName}/{lastName}/{email}/{phoneNo}/{company}"
);
routes.MapHttpRoute(
name: "UserPasswordConfirmationApi",
routeTemplate: "api/{controller}/{action}/{userId}/{password}"
);
Атрибуты здесь (firstName, lastName и т. д.) правильно заполняются на стороне клиента, и я вижу их на стороне сервера, когда я вызываю эти два действия по отдельности. Но когда оба действия находятся в контроллере, он говорит, что не может определить, какое действие выбрать. Это, очевидно, из-за пользовательских объектов, которые я заполняю на стороне сервера (модель RegisterUser и модель UserPasswordConfirmModel). Так что конфликт есть.
Это связано с проблемой маршрутизации. Цените любую помощь.
Заранее спасибо.
На самом деле я выяснил, что проблема в конфликте двух действий в одном и том же контроллере. Если я использую эти два действия по отдельности, они работают нормально. Я не знаю, как поступить, когда у нас есть два действия в одном контроллере, как указано выше. Я просмотрел привязку пользовательских параметров, но не думаю, что это проблема, поскольку мои действия работают нормально по отдельности.
Спасибо.