0

データベースにあるエンティティを正確にモデル化するクラスがあります。新しい行のパラメーターを受け取り、すべての設定をテーブルに返すストアド プロシージャがあり、それがリポジトリに入力されます。GET、PUT、および DELETE の結果を、メモリ内のタイプ設定のリストで確認できます。最初に、Visual Studio を閉じてプロジェクトを再度開いて実行しても、リストが以前の状態のままであることに気付きました。データベースから再作成されていないので、まずその理由がわかりません... 第二に、他の HTTP 動詞とは異なり、Fiddler から POST を機能させることができないようです。Fiddler からの値が以下のコードに表示されますが、次のエラーが表示されます: 無効な URI: URI の形式を特定できませんでした。ID を渡しても渡さなくても、同じエラーが発生します。

これが私がフィドラーに入れたものです:

POST localhost:54852/api/settings

リクエスト ヘッダー

User-Agent: Fiddler
Content-type: application/x-www-form-urlencoded
Host: localhost:54852
Content-Length: 149

リクエスト本文

ID=0&Category=Dried%20Goods&Sub_Category=その他&UnitSize=99&UnitOfMeasureID=999&Facings=true&Quantity=true&EverydayPrice=999.99&PromotionPrice=111.11

私の SettingsController 内の PostSetting 関数

     public HttpResponseMessage PostSetting(Setting item)
    {
        item = repository.Add(item);            
        var response = new HttpResponseMessage<Setting>(item) { StatusCode = HttpStatusCode.Created };
        string uri = Url.Route("DefaultApi", new { id = item.ID });
        response.Headers.Location = new Uri(uri);
        return response;
    }

データベースから MAXID を取得する新しいプロシージャを作成し、新しい ID を作成する上記の行でそれを NEW ID として使用する必要がありますか?

4

2 に答える 2

3

Fiddler (現在はTelerik製品) を使用してテストする Setting クラスまたは項目の JSON 表現を作成し、[Composer] タブを使用する必要があります。

次に、次の URL に対して POST を実行します。

http://[ベース URL]/api/settings

JSON 形式の設定クラスを渡します。

この例をここで見ることができます: ASP.NET Web API - Scott Hanselman

于 2012-09-25T12:33:52.283 に答える
0

これは、簡単に達成する方法を示す短いビデオです

フィドラーから webapi を取得して投稿する

ここに画像の説明を入力

于 2015-04-17T18:02:25.930 に答える