내 asp.net mvc 컨트롤러에서 작업을 호출하는 단추를 작업하고 있습니다. 오류를 잡아 내 사용자에게 알맞게 표시하려고 노력하고 있지만 제대로 수행하는 방법을 파악할 수 없습니다. 내 컨트롤러에서 예외 (테스트 목적으로)를 강제로 수행 할 때마다 내 ajax 호출의 .sucess 부분이 여전히 해고되었습니다. 여기 내 아약스 호출의 : 이미지가 삭제되지 않은 경우에도,컨트롤러에 jquery ajax를 호출하여 예외가 발생하지 않는 이유는 무엇입니까?
[HttpGet]
public ActionResult DeleteImage(int unitId)
{
try
{
throw new Exception("Forced error");
UnitClient.UpdateUnitImage(unitId, new byte[0]);
}
catch (Exception e)
{
Log.Error(e);
return Json(new { e.Message }, JsonRequestBehavior.AllowGet);
}
return Json(new JsonResult(), JsonRequestBehavior.AllowGet);
}
성공 항상 호출됩니다 : 여기
$(document).ready(function() {
$("#del").on("click", function() {
var message;
$.ajax({
url: "@Url.Action("DeleteImage", "UnitSummary")",
type: "GET",
dataType: "json",
data: { unitId: "@Model.UnitId" },
error: function(msg) {
message = msg;
$('#delsection').hide().html('<div class="alert alert-danger"><strong>Ouch!</strong> ' + message.statusText + '</div>').fadeIn('slow');
},
success: function(msg) {
message = msg;
$('#delsection').hide().html('<div class="alert alert-success"><strong>Success!</strong> Image was deleted.</div>').fadeIn('slow');
}
});
});
을 그리고 나의 컨트롤러입니다. 내가 여기서 무엇을 놓치고 있니?
글쎄, 당신은 예외를 잡아와'JsonResult'를 반환합니다. ajax 호출의 결과는 항상'200'이 될 것이므로'success' 메서드가 호출됩니다. – Zabavsky