大家好,我想知道有什么可能。使用 ajax 发送错误消息(如果发生),否则发送 View 。你可以看到我的代码。请帮助我该怎么办。需要一些建议
这是我的例子
public ActionResult Test()
{
string ErrorText = string.Empty;
if(true)
return View("PagedList");
}
else
{
return Json(new { errorMessage = ErrorText});
}
}
Ajax :-
function Load(page) {
$.ajax({
type: "POST",
url: page,
xhrFields: {
withCredentials: true
},
success: function (data) {
$('#ReportLoad').empty();
$('#ReportLoad').append($.parseHTML(data));
},
error: function (xhr, textStatus, exceptionThrown) {
$('#ReportErrors').empty();
$('#ReportErrors').html(JSON.parse(xhr.responseText));
$('#ReportErrors').show();
},
complete: function () {
}
});
}
我不知道我的做法是否正确,任何人都可以建议实现此目标的最佳方法是什么。
最佳答案
以 HttpStatusCodeResult
形式返回错误代码,如果您只是发送回复,则 Ajax 无法知道这是一个错误,除非您检查响应中的特定文本。
public ActionResult Test()
{
string ErrorText = string.Empty;
if(true)
return View("PagedList");
}
else
{
return new HttpStatusCodeResult(500, ErrorText);
}
}
然后使用 Ajax 检测这一点:
function Load(page) {
$.ajax({
type: "POST",
url: page,
xhrFields: {
withCredentials: true
},
success: function (data) {
$('#ReportLoad').empty();
$('#ReportLoad').append($.parseHTML(data));
},
error: function (xhr, textStatus, exceptionThrown) {
$('#ReportErrors').empty();
$('#ReportErrors').html(JSON.parse(xhr.responseText));
$('#ReportErrors').show();
},
complete: function () {
},
statusCode: {
500: function(response)
{
alert("internal error");
}
}
});
}
关于jquery - 返回错误并在ajax中查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30452701/