• 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
  • 相关阅读:
    超市账单管理系统设计思路
    Hibernate之Query.uniqueResult()结果为数值的注意事项
    Hibernate之Query.uniqueResult()结果为数值的注意事项
    Struts2加载自定义库注意事项
    135编辑器使用方法
    SQLite – ORDER 子句
    Readings
    自己常用的导航工具
    Spring中的事件处理
    iOS-Runtime
  • 原文地址:https://www.cnblogs.com/zhongkai/p/4033506.html
Copyright © 2020-2023  润新知