我有一个使用Get
[HttpGet]
[AdminAuthorization]
public ActionResult MakeReservation(ReservationModel m)
{
return PartialView(m);
}
这里是Ajax代码:
$.ajax({
url: "/DeviceUsage/MakeReservation",
type: "GET",
contentType: "application/json; charset=utf-8",
dataType: 'json',
data: JSON.stringify({ data: Ids }),
error: function (data) {
alert("Dodanie nie powiodło się Jeden lub wiecej numerów seryjnych nie są unikalne " + data);
},
success: function (data) {
$('#ProperModal.modal-body').html(data);
$("#Modal").modal('show');
//if (data === "sukces") {
}
});
如果我将方法描述和ajax类型更改为POST
函数有效。我应该如何修改此代码以使其与GET
调用一起使用?
答案 0 :(得分:2)
您需要在控制器中使用JsonRequestBehavior.AllowGet
。有关详细信息,请阅读this answer on SO
我认为在你的动作中返回Json(不是PartialView)是很好的做法(对于ajax)。如果要返回PartialView,可以使用this technique
答案 1 :(得分:1)
您不需要明确地告诉HttpGet
,默认情况下,它会将其视为HttpGet
,但如果您设置了HttpPost
属性,那么它就不起作用获取请求。
Jquery ajax的情况也是如此,如果你不告诉它,它的get或post请求,默认情况下会向服务器发出get请求
答案 2 :(得分:0)
删除contentType和dataType:'json'(这表示您正在返回json,但您的代码返回部分视图)。并删除JSON.stringify作为jQuery直接接受您的JS对象。没有测试过,但它应该可以工作。