ylbtech-Unitity: cs-JsonHelper |
AjaxResult.cs FormatJsonExtension.cs
1.A,效果图 |
1.B,源 |
1.B.1,AjaxResult.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web.Script.Serialization; namespace Core.JsonHelper { /// <summary> /// 前台Ajax请求的统一返回结果类 /// </summary> public class AjaxResult { private AjaxResult() { } private bool iserror = false; /// <summary> /// 是否产生错误 /// </summary> public bool IsError { get { return iserror; } } /// <summary> /// 错误信息,或者成功信息 /// </summary> public string Message { get; set; } /// <summary> /// 成功可能时返回的数据 /// </summary> public object Data { get; set; } #region Error public static AjaxResult Error() { return new AjaxResult() { iserror = true }; } public static AjaxResult Error(string message) { return new AjaxResult() { iserror = true, Message = message }; } #endregion #region Success public static AjaxResult Success() { return new AjaxResult() { iserror = false }; } public static AjaxResult Success(string message) { return new AjaxResult() { iserror = false, Message = message }; } public static AjaxResult Success(object data) { return new AjaxResult() { iserror = false, Data = data }; } public static AjaxResult Success(object data, string message) { return new AjaxResult() { iserror = false, Data = data, Message = message }; } #endregion /// <summary> /// 序列化 /// </summary> /// <returns></returns> public override string ToString() { return new JavaScriptSerializer().Serialize(this); } } }
View Code
1.B.2,FormatJsonExtension.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Web; using System.Web.Mvc; using Newtonsoft.Json; namespace Core.WebHelper { /// <summary> /// 格式化json扩展 /// </summary> public static class FormatJsonExtension { /// <summary> /// 普通序列化(不进行UI友好的json化) /// </summary> /// <param name="c">控制器</param> /// <param name="data">数据</param> /// <returns></returns> public static FormatJsonResult JsonFormat(this Controller c, object data) { FormatJsonResult result = new FormatJsonResult(); result.NotLigerUIFriendlySerialize = true; result.Data = data; return result; } /// <summary> /// UI友好的json格式序列化 /// </summary> /// <param name="c"></param> /// <param name="data"></param> /// <param name="IsError"></param> /// <param name="message"></param> /// <returns></returns> public static FormatJsonResult JsonFormat(this Controller c, object data, bool IsError, string message) { FormatJsonResult result = new FormatJsonResult(); result.Data = data; result.Message = message; result.IsError = IsError; return result; } /// <summary> /// 根据操作和提供的数据判断执行状态 /// </summary> /// <param name="c">控制器</param> /// <param name="data">数据</param> /// <param name="op">操作类型(增删改查,等等)</param> /// <returns></returns> public static FormatJsonResult JsonFormat(this Controller c, object data, SysOperate op) { //if (!data.IsNullOrEmpty()) { return JsonFormatSuccess(c, data,"成功");// op.ToMessage(true)); } return JsonFormatError(c,"失败");// op.ToMessage(false)); } /// <summary> /// 根据操作和提供的数据判断执行状态 /// </summary> /// <param name="c">控制器</param> /// <param name="data">数据</param> /// <param name="status">数据</param> /// <param name="op">操作类型(增删改查,等等)</param> /// <returns></returns> public static FormatJsonResult JsonFormat(this Controller c, object data, bool status, SysOperate op) { if (status) { return JsonFormatSuccess(c, data, "成功");//op.ToMessage(true)); } return JsonFormatError(c, "失败");//op.ToMessage(false)); } /// <summary> /// 成功的json返回 /// </summary> /// <param name="c"></param> /// <param name="data"></param> /// <param name="message"></param> /// <returns></returns> public static FormatJsonResult JsonFormatSuccess(this Controller c, object data, string message) { return JsonFormat(c, data, false, message); } /// <summary> /// 失败的json返回 /// </summary> /// <param name="c"></param> /// <param name="message"></param> /// <returns></returns> public static FormatJsonResult JsonFormatError(this Controller c, string message) { return JsonFormat(c, null, true, message); } } /// <summary> /// JsonResult格式化扩展 /// </summary> public class FormatJsonResult : ActionResult { private bool iserror = false; /// <summary> /// 是否产生错误 /// </summary> public bool IsError { get { return iserror; } set { this.iserror = value; } } /// <summary> /// 错误信息,或者成功信息 /// </summary> public string Message { get; set; } /// <summary> /// 成功可能时返回的数据 /// </summary> public Object Data { get; set; } /// <summary> /// 正常序列化方式(为True则不进行UI友好的序列化) /// </summary> public bool NotLigerUIFriendlySerialize { get; set; } public override void ExecuteResult(ControllerContext context) { if (context == null) { throw new ArgumentNullException("context"); } HttpResponseBase response = context.HttpContext.Response; response.ContentType = "application/json"; StringWriter sw = new StringWriter(); JsonSerializer serializer = JsonSerializer.Create( new JsonSerializerSettings { // Converters = new JsonConverter[] { new Newtonsoft.Json.Converters.IsoDateTimeConverter() }, ReferenceLoopHandling = ReferenceLoopHandling.Ignore, NullValueHandling = NullValueHandling.Ignore } ); using (JsonWriter jsonWriter = new JsonTextWriter(sw)) { jsonWriter.Formatting = Formatting.Indented; if (!NotLigerUIFriendlySerialize) serializer.Serialize(jsonWriter, this); else serializer.Serialize(jsonWriter, Data); } response.Write(sw.ToString()); } } /// <summary> /// 系统的常见操作 /// </summary> public enum SysOperate { Add = 0, Update = 1, Load = 2, Delete = 3, Operate = 4, UnkownError = 5 } #region 友好的提示信息 /// <summary> /// 友好的提示信息 /// </summary> public static class FriendlyMessage { //#region ///// <summary> ///// 获取消息(根据操作类型和状态) ///// </summary> ///// <param name="sysOp">操作类型</param> ///// <param name="status">执行状态</param> ///// <returns></returns> //public static string ToMessage(this SysOperate sysOp, bool status) //{ // string message = ""; // //根据操作类型和执行状态返回消息 // switch (sysOp) // { // case SysOperate.Add: // message = status ? SystemMessage.AddSuccess.ToMessage() : SystemMessage.AddError.ToMessage(); // break; // case SysOperate.Load: // message = status ? SystemMessage.LoadSuccess.ToMessage() : SystemMessage.LoadError.ToMessage(); // break; // case SysOperate.Update: // message = status ? SystemMessage.UpdateSuccess.ToMessage() : SystemMessage.UpdateError.ToMessage(); // break; // case SysOperate.Delete: // message = status ? SystemMessage.DeleteSuccess.ToMessage() : SystemMessage.DeleteError.ToMessage(); // break; // case SysOperate.Operate: // message = status ? SystemMessage.OperateSuccess.ToMessage() : SystemMessage.OperateError.ToMessage(); // break; // case SysOperate.UnkownError: // message = SystemMessage.UnkownError.ToMessage(); // break; // } // return message; //} ///// <summary> ///// 获取系统管理模块友好提示信息 ///// </summary> ///// <param name="code"></param> ///// <returns></returns> //public static string ToMessage(this SystemMessage code) //{ // string message = ""; // switch (code) // { // case SystemMessage.AddSuccess: // message = "添加成功!"; // break; // case SystemMessage.AddError: // message = "添加失败!"; // break; // case SystemMessage.DeleteSuccess: // message = "删除成功!"; // break; // case SystemMessage.DeleteError: // message = "删除失败!"; // break; // case SystemMessage.LoadSuccess: // message = "加载成功!"; // break; // case SystemMessage.LoadError: // message = "加载失败!"; // break; // case SystemMessage.OperateSuccess: // message = "操作成功!"; // break; // case SystemMessage.OperateError: // message = "操作失败!"; // break; // case SystemMessage.UpdateSuccess: // message = "更新成功!"; // break; // case SystemMessage.UpdateError: // message = "更新失败!"; // break; // case SystemMessage.UnkownError: // message = "未知错误!"; // break; // default: // message = "错误"; // break; // } // return message; //} //#endregion //#region 获取用户模块界面友好的消息提示 ///// <summary> ///// 获取用户模块界面友好的消息提示 ///// </summary> ///// <param name="code"></param> ///// <returns></returns> //public static string ToMessage(this UserMessage code) //{ // string message = ""; // switch (code) // { // case UserMessage.UserNotLogin: // message = "用户未登录!"; // break; // case UserMessage.UserLoginSuccess: // message = "登录成功!"; // break; // case UserMessage.UserLoginError: // message = "用户登录失败!"; // break; // case UserMessage.ChangePasswordSuccess: // message = "修改密码成功!"; // break; // case UserMessage.ChangePasswordError: // message = "修改密码失败!"; // break; // case UserMessage.UnkonwnError: // message = "未知错误"; // break; // default: // message = "未知错误"; // break; // } // return message; //} //#endregion } #endregion }
View Code
1.B.3,