很抱歉在问了另一个问题后这么快就问了这个问题,但我现在正在为 PUT 苦苦挣扎。
我有一个 jQuery 方法,它收集数据并将其传递给 valuescontroller 中的 PUT 函数。但是控制器甚至没有被调用(因为我有一个断点并且它没有中断)
我可以检查我的 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 错误。
控制台日志显示以下内容:
{"Message":"找不到与请求 URI 'localhost:62997/api/Values' 匹配的 HTTP 资源。","MessageDetail":"在控制器 'Values' 上找不到与请求匹配的操作。"}
在 JSON 控制台的 MessageDetail 下,我得到了这个(这支持我认为不正确参数的理论)
“在与请求匹配的控制器‘值’上找不到任何操作”
但是 get 成功了。(还有我今天早上早些时候开始工作的帖子。)