0

私はWeb APIにかなり慣れていないので、愚かな質問を許してください

私はWeb API 2メソッドを持っています......

[System.Web.Http.HttpPost]
public MyAPIController AddItemToBasket(Guid b, Guid l, Guid a, 
                                       Guid cid, int d, int p, int q)
{
    ..blah blah
}

私はWinformテストアプリをまとめています。

パラメータをメソッドに渡すことができないようです。POST メソッドがパラメーターとしてオブジェクトを持ち、それは単純なように見える多くの例を目にしますが、奇妙なことに、単純な型を渡すことははるかに頭痛の種のようです。

HTTPContent 変数を設定して渡す必要があるようですが、その方法がわかりません。

または、これらのパラメーターをオブジェクトにラップする必要があります。いずれにせよ、将来の使用のためにこれを行う方法を知りたいです。

ティア、

4

1 に答える 1

1

POSTアクションの既定では、Web Api フレームワークは要求のメッセージ本文からパラメーターを探します。クエリ文字列からパラメーターを渡そうとする場合は、[FromUri]属性を使用する必要があります。

[HttpPost]
public IHttpActionResult AddItemToBasket([FromUri]Guid b, [FromUri]Guid l, [FromUri]Guid a, 
                                       [FromUri]Guid cid, [FromUri]int d, [FromUri]int p, 
                                       [FromUri]int q)
{
    ..blah blah
}

または、 aを作成NewItem Objectして、属性で一度だけマークすることをお勧めします。

public class NewItem
{
     public Guid b { get; set; }
     public Guid l { get; set; }
     public Guid a { get; set; }         
     public Guid cid { get; set; }       
     public int d { get; set; }       
     public int p { get; set; }       
     public int q { get; set; }
}

[HttpPost]
public IHttpActionResult AddItemToBasket([FromUri]NewItem item)
{
    ..blah blah
}

POSTただし、フローに沿って、API アクションを意図したとおりに使用することを強くお勧めします。つまり、新しいアイテム データをメッセージ本文に投稿します。

于 2015-10-21T16:43:38.503 に答える