をソリューションは、パラメータ名が重要であるかどうかに依存します。 By default within Microsoft Web Api, the query string parameter name must match the parameter variable name of the method。たとえば:
を:URLは
"api/MenuData/GetMenu?UserPKId=1"
ある場合
は、コントローラのメソッドは
public MyModel CommonWebApiMethod(string MethodName, string UserPKId)
重要でないパラメータ名
は、ルートを設定し、次のパラメータリストを持っている必要があります
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "MethodName",
routeTemplate: "api/MenuData/{MethodName}",
defaults: new { controller = "Common", action = "CommonWebApiMethod" }
);
}
}
コントローラー:
public class CommonController : ApiController
{
[HttpPost]
public MyModel CommonWebApiMethod(string MethodName, string parameter)
{
return new MyModel { MethodName = MethodName, Parameter = parameter };
}
}
呼び出すURL:
"api/MenuData/GetMenu?parameter=1"
重要なパラメータ名
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "ParameterName",
routeTemplate: "api/MenuData/{MethodName}/{parameterName}",
defaults: new { controller = "Common", action = "CommonWebApiMethod" }
);
}
}
コントローラー:
public class CommonController : ApiController
{
[HttpPost]
public MyModel CommonWebApiMethod(string MethodName, string parameterName, string parameter)
{
return new MyModel { MethodName = MethodName, Parameter = parameter };
}
}
呼び出すURL:
"api/MenuData/GetMenu/UserPKId?parameter=1"
はあなたのクライアントのリクエストヘッダにたsourceTypeのPARAMを追加し、WEBAPIでHttpRequestHeadersからそれを抽出したsourceTypeに基づいて、セグメントあなたの関数。一定のソートタイプがある場合は、サービスAPIでその目的の列挙を行うことができます。次に、あなたのCommonWebApiMethodをセグメント化するためにスイッチケースを使用します。 SourceTypeはあなたのコントロールになることができます – Pushpendra
こんにちは、Web APIのURLから、私はコントローラ名、メソッド名、パラメータを区別しません。 –