在一个位置处理所有Ajax异常,并将错误返回到视图
我有一个相当大的应用程序,有几十个Ajax调用。我想在一个地方记录ajax调用中出现的任何错误。我在我的_Layout.cshmtl视图中放置了一个jquery警报,以便将异常传递到警报中。如何将错误字符串从HandleExceptionAttribute类返回到视图 控制器操作:在一个位置处理所有Ajax异常,并将错误返回到视图,ajax,asp.net-mvc-4,asp.net-ajax,Ajax,Asp.net Mvc 4,Asp.net Ajax,我有一个相当大的应用程序,有几十个Ajax调用。我想在一个地方记录ajax调用中出现的任何错误。我在我的_Layout.cshmtl视图中放置了一个jquery警报,以便将异常传递到警报中。如何将错误字符串从HandleExceptionAttribute类返回到视图 控制器操作: [HandleExceptionAttribute] [HttpPost] [Authorize ( Roles = "View Only,Admin,A-Team Manager,A-Team An
[HandleExceptionAttribute]
[HttpPost]
[Authorize ( Roles = "View Only,Admin,A-Team Manager,A-Team Analyst" )]
public JsonResult GetEntitySorMapTable ( Decimal entityId )
{
//Added this line to hit my HandleExceptionAttribute
throw new DivideByZeroException();
List<EntitySorMapView> entitySorMaps = null;
if (entityId == 0)
{
entitySorMaps = new List<EntitySorMapView> ( );
}
entitySorMaps = RealmsModel.RealmsDataInterface ( ).SelectEntitySorMapByEntityId ( entityId );
String data = HtmlHelpers.BuildEntitySorMapTable ( entitySorMaps );
return new JsonResult ( )
{
Data = data,
MaxJsonLength = Int32.MaxValue
};
}
_布局视图ajax错误脚本:
<script type="text/javascript">
$(document).ajaxError(function (xhr, status, error) {
e.stopPropagation();
if (xhr.error != null)
alert('Error: ' + xhr.responseText + ' status: ' + status + ' Exception: ' + error);
});
</script>
$(文档).ajaxError(函数(xhr、状态、错误){
e、 停止传播();
如果(xhr.error!=null)
警报('Error:'+xhr.responseText+'状态:'+status+'异常:'+Error);
});
您可以使用
filterContext.Result = new JsonResult
{
Data = new { errorMessage = "Your custom error message" },
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
在您的_layout.cshtml文件中
$(document).ajaxError(function (event, jqxhr, settings, thrownError) {
if (jqxhr.error != null) {
var result = JSON.parse(jqxhr.responseText);
console.log(result.errorMessage)
}
});
$(document).ajaxError(function (event, jqxhr, settings, thrownError) {
if (jqxhr.error != null) {
var result = JSON.parse(jqxhr.responseText);
console.log(result.errorMessage)
}
});