我有调用方法的ajax方法
$.ajax({
url: "/DeviceUsage/Return",
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: 'HTML',
data: JSON.stringify({ dev: { DeviceInstanceId: $('#DeviceInstanceId').val(), UserId: "1", StorageId: $('#StorageId').val() } }),
error: function (data) {
alert("wystąpił nieokreślony błąd " + data);
},
success: function (data) {
if (data.ok) {
$("#Modal").modal('hide');
window.location = data.newurl;
}
else {
$('.modal-body').html(data);
}
}
})
根据if方法是否成功结束,该方法可以返回HTML数据或JSON数据
return PartialView(dev) <=== Html
return Json(new { ok = true, newurl = Url.Action("MyDevices") });;<=== JSON
但在Ajax
数据类型中,我只能设置Html或JSON。如果我先设置重定向不会工作。如果json然后PartialView不会工作。有没有可能动态设置dataType?
答案 0 :(得分:2)
尝试不提供dataType,因为jQuery会尝试为您确定正确的格式;
dataType(默认值:智能猜测(xml,json,script或html))
如果这不起作用,请使用html(纯文本)只检查响应数据中的某些关键字并根据此使用数据。例如;
if (data.indexOf("html") > -1) {
$('.modal-body').html(data);
}
else {
var objData = JSON.parse(data);
window.location = objData.newurl;
}