ASP.NET MVC ajax处理 AjaxResult

版权所有,禁止匿名转载;禁止商业使用。

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

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

/// <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; }
}

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; }  }

 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; }
    }

 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;    
        }  
    }


  • 分类:C#
  • 标签:
0 0