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
  • 相关阅读:
    040 Android TCP协议的Socket通信
    039 Android SQLite数据库(了解)
    Navicat 连接Sqlite数据库的方法和步骤
    038 Android File文件存储功能
    037 Android SharedPreferences应用实例(记录App的使用次数)
    036 Android SharedPreferences(数据存储,需掌握)
    035 Android 广播(BroadCastReceiver)
    SharePoint2013打印列表项对象
    SharePoint2013所有列表绑定到DropDownList1中
    通过主机标头实现多个SharePoint Web应用程序共用一个端口(
  • 原文地址:https://www.cnblogs.com/zhongkai/p/4033506.html
Copyright © 2011-2022 走看看