別の質問をした後すぐにこれについて質問して申し訳ありませんが、私は現在PUTに苦労しています。
データを収集してvaluescontrollerのPUT関数に渡すjQueryメソッドがあります。しかし、コントローラーは呼び出されていません(ブレークポイントがあり、ブレークしていないため)
jQueryが正しいことを確認できますか?
var data = {
id: truckId,
obj: {
TruckId: truckId,
Reg: reg,
Description: desc,
Condition: condition
}
};
var json = JSON.stringify(data)
$.ajax({
url: '/api/Values',
type: 'PUT',
contentType: "application/json; charset=utf-8",
data: json,
success: function (results) {
$.getJSON("api/Values", LoadTrucks);
alert('Truck Updated !');
}
})
コントローラは次のようになります。
public void Put(int id, TruckInfo obj)
{
WebApiTestEntities db = new WebApiTestEntities();
var data = from item in db.TruckInfoes
where item.TruckId == id
select item;
TruckInfo oldRecord = data.SingleOrDefault();
oldRecord.Reg = obj.Reg;
oldRecord.Description = obj.Description;
oldRecord.Condition = obj.Condition;
db.SaveChanges();
}
今では、少なくともコントローラーに到達しているように見えます。私の推測では、パラメーターが正しく渡されていないため、別のメソッドを探していますが、それを修正する理由や方法がわかりません。
どんな助けでも大歓迎です:)
レックス
編集:要求に応じて、詳細情報。
エラーコンソールにJavascriptエラーはありません。
コンソールログには次の情報が表示されます。
{"メッセージ":"リクエストURI'localhost:62997 / api /Values'に一致するHTTPリソースが見つかりませんでした。"、 "MessageDetail":"リクエストに一致するコントローラー'値'にアクションが見つかりませんでした。"}
そして、JSONコンソールのMessageDetailの下でこれを取得します(これは、間違ったパラメーターに関する私の理論をサポートしていると思います)
「要求に一致するコントローラーの「値」にアクションが見つかりませんでした」
ただし、getは成功します。(そして、私が今朝早く仕事を始めたPOST。)