asp.net web api 2.0でurlでパラメータ名 "action"を送信できません。asp.net web apiでパラメータ名 "action"を渡す方法
例:
あなたがそうする場合:コントローラで
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{action}",
defaults: new
{
action=RouteParameter.Optional
}
);
方法:
public HttpResponseMessage Get(int action)
{
return ResponseXml();
}
は、エラーメッセージを表示します。
in the dictionary path name of the parameter "action" is contained in the URL-address more than once
アクションメソッドではなく、パラメータ名 "action"をパラメータとして渡す方法は?
おかげ
クエリーストリング(?action = ..)を使用してアクションパラメータを設定する場合は、ルートマップに設定する必要はありません。あなたの現在のrouteTemplateでは、あなたのurlは/ controllername/actionname/xyzのようにするべきですが、もしそれが必要ならば、action以外のものを使うようにrouteTemplateを変更できませんか? –
@ Karthik MRIは、http:// host:port/controller_name?action = 2&login = **という形式のプロトコルに従ってデータを厳密に受信する必要があります。最初のパラメータはパラメータ名「action」 –