私はいくつかのSO postsを読みましたが、それらのどれも私のシナリオをカバーしていませんので、ここに投稿します。私はこのようにそれを行うことはIHttpActionSelectorのための十分な曖昧さ回避のだろうと思ったリクエストに一致する複数のアクションが見つかりました:WebAPI 2
public GetDocumentsResponse Post([FromBody]GetDocumentsRequest request)
{
}
public FinishDocumentsResponse Post([FromBody] FinishDocumentsRequest request)
{
}
public class GetDocumentsRequest
{
public string CorrelationId { get; set; }
public int Id { get; set; }
public string ObjectId { get; set; }
public string BusinessArea { get; set; }
public string UserId { get; set; }
public string SystemName { get; set; }
public string SystemToken { get; set; }
public Letter LetterDetails { get; set; }
public List<KeyValuePair<string, string>> KeyValue { get; set; }
}
public class FinishDocumentsRequest
{
public string CorrelationId { get; set; }
public string[] Documents { get; set; }
}
:
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
とApiControllerから継承するコントローラでこれらのコントローラアクション:
は、次のルート設定登録を考えます経路を正しく選択することはできますが、残念ながらそうではありません。
私の質問は「このコードを正しく動作させ、同じコントローラに保持する方法はありますか」です。
スティーブン
はルートの追加
両方に対して同じURLを呼び出す予定がありましたか? – Nkosi