背景:(ActionNameConstraint
は、カスタムIRouteConstraint
ある)MVC4 Web APIの[Bind(Prefix = "principalId")]に相当しますか?
public ActionResult ActionName([Bind(Prefix = "principalID")] int userID,
[Bind(Prefix = "dependentID")] long applicationID)
次のようにこのアクションのルートが定義されました:MVC3で
、私はカスタムAction
パラメータ名を指定するには、次の構文を使用しました:
routes.MapHttpRoute(
"DependantAction",
"{controller}/{principalID}/{action}/{dependentID}",
new {controller = @"[^0-9]+", action = ActionNameConstraint.Instance, dependentID = RouteParameter.Optional}
);
質問:
BindAttribute
は、System.Web.Mvc
クラスです。 Web Apiにこれと同等のもの(パラメータバインディング)がありますか?
もちろん、同じ結果を達成するための他の解決策がある場合は、私はそれらを聞いてみたいです!
私はこの記事を実際に見直しましたが、実際には同じ目的を達成していません - 記事は主にモデルバインディングをカバーしています(ほとんどの検索で実際にモデルバインドに関する結果が得られました) – diaho
ASP.NET Web APIでは'BindAttribute'機能が組み込まれています。アクションパラメータのバインドは、Web APIのモデルバインディングと書式設定機能で行われます。だから、モデルバインダーだけではありません。もう一つのヒントは、ASP.NET Web APIで 'System.Web.Mvc'名前空間で何も使用しないことです。99%の時間、あなたがこれを行うなら、あなたは困っているでしょう。 – tugberk
更新された回答を確認してください。 – Meligy