cs-JsonHelper

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,

1.C,下载地址返回顶部

 

warn 作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted on 2014-11-06 17:32  ylbtech  阅读(906)  评论(0编辑  收藏  举报