首页 > 代码库 > ASP.NET MVC ajax处理 AjaxResult

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 =http://www.mamicode.com/ _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

ASP.NET MVC ajax处理 AjaxResult