首页 > 代码库 > c# mvc 封装返回对象
c# mvc 封装返回对象
将所有返回JsonContent对象进行再次封装
public class ResultFilterAttribute : System.Web.Mvc.ActionFilterAttribute { public override void OnActionExecuted(ActionExecutedContext filterContext) { if (filterContext.Exception != null) { base.OnActionExecuted(filterContext); return; } if (filterContext.Result is JsonResult) { var invokeResult = new InvokeResult<object> { Success = true }; var result = filterContext.Result as JsonResult; invokeResult.Data = result.Data; result.Data = invokeResult; base.OnActionExecuted(filterContext); return; } base.OnActionExecuted(filterContext); return; } }
对异常信息处理,避免黄页显示
public class MvcExceptionFilterAttribute : IExceptionFilter { public void OnException(ExceptionContext filterContext) { var invokeResult = new InvokeResult<object>(); if(filterContext.Exception is DomainException) { invokeResult.Message = filterContext.Exception.Message; } else { invokeResult.Message = filterContext.Exception.Message + (filterContext.Exception.StackTrace??""); //记录日志 } var jsonResult = new JsonResult { Data = invokeResult, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; filterContext.ExceptionHandled = true; filterContext.Result = jsonResult; } }
最后全局注册
public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new ResultFilterAttribute()); filters.Add(new MvcExceptionFilterAttribute()); }
c# mvc 封装返回对象
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。