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());
        }
时间: 2024-11-05 22:02:15

c# mvc 封装返回对象的相关文章

spring mvc 封装json对象

@RequestMapping("/findByItem") public void findByItem(int pageNO,String userName,Date startDate,Date endDate,HttpServletResponse response)throws Exception{ CutPageBean cutBean = service.findByItem(pageNO, userName, startDate, endDate); //创建jacks

返回对象result封装

import tf56.sofa.serializer.JsonGenerateUtil; /** * 返回对象Result封装 * @athor changmeng.liu * @date 2014-7-25 * @version 1.0 * @update */ public class Result { final String SUCCESS="success"; final String ERROR="error"; private String coun

SpringBoot之封装json对象返回json数据

/** * @description:封装json对象,所有返回结果都使用它 **/ public class Result<T> { private int code;// 业务自定义状态码 private String msg;// 请求状态描述,调试用 private T data;// 请求数据,对象或数组均可 public Result() { } /** * 成功时候的调用 * @param data data * @param <T> t * @return Resu

Spring MVC返回对象JSON

@RestController 用于返回对象,会自动格式化为JSON @RequestMapping("/user2") public User2 user2(Model model){ model.addAttribute("content", hello + "(第二种)"); User2 user=new User2(); user.setId(1); user.setName("tomas"); user.setPwd

MVC 返回对象换成json

错误界面: 这个就是返回对象没有转换成json 就是要再返回的头部添加application/json 代码: using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Net.Http.Formatting; using System.Net.Http.Headers; using System.Web; namespace WorkOrderMa

六、Spring MVC之返回数据

前面几篇文章重点说明了一下怎么从前台传递参数到目标方法,还没有说怎么把结果返回给前台.本篇来讲述一下spring mvc怎么返回结果数据. 从使用形式上看,有以下几种方式:ModelAndView.Map.Model,这几种方式都可以返回数据到前台,本质上来看都是通过map的形式返回数据的.本系列文章着重于使用,深层次的原因,感兴趣的同志可以去调适源代码,这里只是结合使用方式,做简单的样例和分析. 1.ModelAndView的使用 /**  * 方法的返回值可以是ModelAndView类型,

HQL查询——查询返回对象类型分析

关于HQL查询,我们可以结合hibernate的API文档,重点围绕org.hibernate.Query接口,分析其方法,此接口的实例对象是通过通过session.对象的creatQuery(String hql)方法得到的.我这里要分析HQL的select子句,当然要想深入HQL查询,我们就必须了解hibernate缓存的知识. 一.选择--Select子句查询返回对象的讨论 为什么只说Select子句,因为我们使用的hibernate框架是基于java语言环境下进行开发的,也就是说hibe

ALIAS_TO_ENTITY_MAP 封装成对象

ALIAS_TO_ENTITY_MAP   封装成对象 protected List<?> executeSQLMapQuery(String sql, Object param, int start,            int limit) {        Query query = null;        query = this.getSession().createSQLQuery(sql)                .setResultTransformer(Transf

Spring JDBC查询返回对象代码跟踪

在封装方法的时候突然发现通过 ResultSetMetaData的getColumnCount()获取到的列明会多一列(ROWSTAT),而且每次的值都是1,目前没有找到相关信息,在国外网站上看到有类似的情况,但是都没有人回答.于是想到spring 的JDBC部分是怎么实现映射的,于是通过spring的源代码发现了大致的流程: (这里先说明一下自己得到收获:spring的query查询返回对象T的方法是首先获取要返回对象的所有的writeMethod,也就是set方法,然后存放在一个Proper