我正在使用MVC2中的Ajax.BeginForm进行ajax调用,如下所示:
using (Ajax.BeginForm("methoname", "controller", new AjaxOptions
{
HttpMethod = "Post",
OnSuccess = "OnSuccessUserSave",
UpdateTargetId = "PopupBody"
}))
现在,我希望在请求发送时显示加载,并在请求完成/成功/失败时停止。
我知道我可以使用
OnBegin = "startLoading",
OnComplete = "stopLoading",
OnFailure = "stopLoading",
OnSuccess = "stopLoading"
但是,我不想这样。
我有很多这样的要求。
所以,我想用jQuery制作。
一旦我编写了jquery脚本,它就会针对每个请求触发。
我喜欢这个:
$(document).ajaxSuccess(function () {
$('#LoadingImage').modal('hide');
});
$(document).ajaxComplete(function () {
$('#LoadingImage').modal('hide');
});
$(document).ajaxSend(function () {
$('#LoadingImage').modal('show');
});
$(document).ajaxError(function () {
$('#LoadingImage').modal('hide');
});
但是,它仅适用于以下语法:
$.ajax({
type: "GET",
url: "NewUser/Testing",
dataType: "json",
// cache: false,
success: function (response) {
alert("Request Success");
},
error: function (xhr, status) {
alert('Unknown error ' + status);
}
});
并且,它不适用于Ajax.BeginForm。
我该怎么做才能使用jquery?
任何帮助都会受到太多赞赏。
提前致谢。
答案 0 :(得分:0)
MVC框架精美地集成了jQuery。我建议你也使用jQuery表单。在这种情况下,请使用Html.BeginForm
代替Ajax.BeginForm
这样的内容:
('form').on('submit',function(){
var form = $(this);
$.ajax({
url: form.attr('action'),
data: form.serialize(),
dataType: 'json',
success : function(data){//success function here},
error : function(resp, status, xhr){}
});
});