问题描述
{"success":true,"message":"扫描的设备类型与系统不匹配。"}
return json 继续返回数据,而不是遵循 ajax post 方法中的代码。
这是我的ajax返回码:
function SubmitForm(form) {
alert("grc");
$.validator.unobtrusive.parse(form);
if ($(form).valid()) {
$.ajax({
type: "POST",url: form.action,data: $(form).serialize(),success: function (data) {
if (data.success) {
alert(data.success);
//Popup.dialog('close');
//dataTable.ajax.reload();
//$.notify(data.message,{
// globalPosition: "top center",// className: "success"
//})
}
}
});
}
return false;
}
我的表单也有这个代码:
@using (Html.BeginForm("ScanTD","Home",FormMethod.Post,new { onsubmit = "return SubmitForm(this)" }))
{
而控制器的返回是这样的:
return Json(new { success = true,message = result },JsonRequestBehavior.AllowGet);
控制器似乎能够捕获结果,因为 json 返回它但不遵循我在 ajax 中设置的操作。我测试了在 SubmitForm 函数的触发器上添加警报并且它出现但是一旦它进入控制器,它就不会在 ajax 的成功代码中触发警报。它只返回带有假定成功结果的白页。
解决方法
我不知道我做了什么,但我刚刚为 jQuery 验证器添加了资源,现在它似乎可以工作了。