データベースにあるエンティティを正確にモデル化するクラスがあります。新しい行のパラメーターを受け取り、すべての設定をテーブルに返すストアド プロシージャがあり、それがリポジトリに入力されます。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 として使用する必要がありますか?