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 など) はクライアント側から適切に入力されており、これら 2 つのアクションを別々に呼び出すと、サーバー側でそれらを見ることができます。ただし、両方のアクションがコントローラーにある場合、どちらのアクションを選択するかを識別できないと表示されます。これは明らかに、サーバー側 (RegisterUser モデルと UserPasswordConfirmModel モデル) に入力しているカスタム オブジェクトが原因です。だからそこに葛藤がある。
これは、ルーティングの問題が原因です。どんな種類の助けにも感謝します。
前もって感謝します。
実際、問題は同じコントローラー内の2つのアクションの競合にあることがわかりました。これら 2 つのアクションを別々に使用すると、正常に動作します。上記のように、同じコントローラーに 2 つのアクションがある場合の処理方法がわかりません。カスタム パラメーター バインディングを調べましたが、アクションは個別に正常に動作するため、それが問題だとは思いません。
ありがとう。