0
我继承了一个使用ASP.NET MVC 3的代码库。我正在学习它。该项目似乎公开了格式为“/ svcs/orders /”的API。有一种方法已经写入位于MyProject.Areas.svcs.Controllers.OrdersController中的文件中。该控制器如下所示:在ASP.NET MVC 3中执行PUT方法
public class OrdersController : Controller
{
[AcceptVerbs(HttpVerbs.Put)]
public ActionResult AddOrder(OrderModel data)
{
// Do Stuff...
var result = GetResult();
return Json(result, JsonRequestBehavior.AllowGet);
}
}
我想弄清楚如何通过JQuery调用此方法。我知道我可以通过“/ svcs/orders /”地址来引用服务。但我不确定如何将数据“PUT”到服务。如何填充AddOrder方法预期的OrderModel参数?它对我来说太奇怪了。目前,我正在尝试以下操作:
var productID = $("#hidProductID").val();
var quantity = $("#txtQuantity").val();
$.ajax({
url: '/svcs/orders',
type: 'PUT',
contentType: 'application/json; charset=utf-8',
success: function (result) {
alert(result);
},
error: function() {
alert("There was an error.");
}
});
非常感谢您提供的任何帮助!
当我这样做,我收到500错误。为什么会发生?我拥有它,所以我的方法除了返回“OK”以外没有其他任何操作。 – Villager
在你的控制器方法AddOrder中设置断点,看看它是否被命中,以及它是否使用调试器检查OrderModel数据项。如果它没有被击中,你在路由方面有问题。如果您希望我们帮助您使用JS在客户端构建适当的对象,则还应该发布'OrderModel'的数据类型。 – mattypiper