Encapsulates all returned Jsoncontent objects again
Public classResultFilterAttribute:System.Web.Mvc.ActionFilterAttribute { Public Override voidonactionexecuted (ActionExecutedContext filtercontext) {if(Filtercontext.exception! =NULL) { Base. OnActionExecuted (Filtercontext); return; } if(Filtercontext.result isJsonresult) { varInvokeresult =Newinvokeresult<Object>{Success=true }; varresult = Filtercontext.result asJsonresult; Invokeresult.data=result. Data; Result. Data=Invokeresult; Base. OnActionExecuted (Filtercontext); return; } Base. OnActionExecuted (Filtercontext); return; } }
Exception information processing, to avoid yellow page display
Public classMvcexceptionfilterattribute:iexceptionfilter { Public voidonexception (Exceptioncontext filtercontext) {varInvokeresult =Newinvokeresult<Object>(); if(filtercontext.exception isdomainexception) {Invokeresult.message=FilterContext.Exception.Message; } Else{invokeresult.message= FilterContext.Exception.Message + (filterContext.Exception.StackTrace??""); //Record Log } varJsonresult =NewJsonresult {Data=Invokeresult, Jsonrequestbehavior=Jsonrequestbehavior.allowget}; Filtercontext.exceptionhandled=true; Filtercontext.result=Jsonresult; } }
Last Global registration
Public Static void registerglobalfilters (globalfiltercollection filters) { filters. ADD (new Resultfilterattribute ()); Filters. ADD (new Mvcexceptionfilterattribute ()); }
C # MVC encapsulates returned objects