版权所有,禁止匿名转载;禁止商业使用。
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; } }