zoukankan      html  css  js  c++  java
  • ASP.NET MVC ajax处理 AjaxResult

    1、统一ASPNET MVC 对ajax请求响应格式定义,方便前端统一处理ajax结果.

      1)定义程序返回结果数据格式

     1 /// <summary>
     2     /// 执行结果
     3     /// </summary>
     4     /// <typeparam name="T"></typeparam>
     5     public class RunResult<T>
     6     {
     7         /// <summary>
     8         /// 操作状态
     9         /// </summary>
    10         public ResultStatus Status { get; set; }
    11         /// <summary>
    12         /// 操作异常
    13         /// </summary>
    14         public Exception Exception { get; set; }
    15         /// <summary>
    16         /// 数据结果
    17         /// </summary>
    18         public T Result { get; set; }
    19         /// <summary>
    20         /// 操作消息
    21         /// </summary>
    22         public string Message { get; set; }
    23     }
    View Code

      2)定义执行结果状态

    /// <summary>
        /// 执行结果
        /// </summary>
        /// <typeparam name="T"></typeparam>
        public class RunResult<T>
        {
            /// <summary>
            /// 操作状态
            /// </summary>
            public ResultStatus Status { get; set; }
            /// <summary>
            /// 操作异常
            /// </summary>
            public Exception Exception { get; set; }
            /// <summary>
            /// 数据结果
            /// </summary>
            public T Result { get; set; }
            /// <summary>
            /// 操作消息
            /// </summary>
            public string Message { get; set; }
        }
    View Code

       3)返回前端数据格式

      public class AjaxEntity<T>
        {
            [JsonProperty(PropertyName = "Success")]
            public bool Success { get; set; }
    
            [JsonProperty(PropertyName = "Message")]
            public string Message { get; set; }
    
            [JsonProperty(PropertyName = "Data")]
            public T Data { get; set; }
        }
    View Code

      4)定义asp.net mvc 中 ajax ActionResult

     public class AjaxResult<T> : CustomResult<AjaxEntity<T>>
        {
            private readonly RunResult<T> _runResult;
    
            public AjaxResult(RunResult<T> runResult)
            {
                _runResult = runResult;
            }
    
            /// <summary>
            /// 
            /// </summary>
            /// <returns></returns>
            public override AjaxEntity<T> GetObject()
            {
                AjaxEntity<T> entity = new AjaxEntity<T> { Data = _runResult.Result };
                if (_runResult.Result is bool)
                {
                    entity.Success = _runResult.Status == ResultStatus.Success && Convert.ToBoolean(_runResult.Result);
                }
                else
                {
                    entity.Success = _runResult.Status == ResultStatus.Success;
                }
                entity.Data = _runResult.Result;
                entity.Message = _runResult.Message;
                return entity;
            }
        }
    View Code
  • 相关阅读:
    [React Router v4] Render Catch-All Routes with the Switch Component
    [React Router v4] Render Nested Routes
    关系数据库规范化理论 函数依赖与范式理论
    Notepad++背景颜色设置
    initial pointer [expert c]
    世界微波射频领域传奇人物
    hdu 4619 Warm up 2 ( 二分图最大匹配 )
    关于数据的归档存入文件和读取文件
    android中通过自定义xml实现你需要的shape效果 xml属性配置
    Java和C#中String直接赋值与使用new创建(==与equals进行比较)的区别
  • 原文地址:https://www.cnblogs.com/zhongkai/p/4033506.html
Copyright © 2011-2022 走看看