新文章 网摘 文章 随笔 日记

在 MVC 中强制使用 Json() ASP.NET 小写属性名称

    /// <summary>
    /// 自定义JsonResult,使
    /// </summary>
    public class JsonNetResult : ActionResult
    {
        /// <summary>
        /// 
        /// </summary>
        public Encoding ContentEncoding { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string ContentType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public object Data { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public JsonSerializerSettings SerializerSettings { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Formatting Formatting { get; set; }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="data"></param>
        /// <param name="formatting"></param>
        public JsonNetResult(object data, Formatting formatting)
            : this(data)
        {
            Formatting = formatting;
            SerializerSettings = new JsonSerializerSettings()
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="data"></param>
        public JsonNetResult(object data) : this()
        {
            Data = data;
        }

        /// <summary>
        /// 
        /// </summary>
        public JsonNetResult()
        {
            Formatting = Formatting.None;
            SerializerSettings = new JsonSerializerSettings()
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="context"></param>
        public override void ExecuteResult(ControllerContext context)
        {
            if (context == null)
                throw new ArgumentNullException("context");
            var response = context.HttpContext.Response;
            response.ContentType = !string.IsNullOrEmpty(ContentType)
              ? ContentType
              : "application/json";
            if (ContentEncoding != null)
                response.ContentEncoding = ContentEncoding;

            if (Data == null) return;

            var writer = new JsonTextWriter(response.Output) { Formatting = Formatting };
            var serializer = JsonSerializer.Create(SerializerSettings);
            serializer.Serialize(writer, Data);
            writer.Flush();
        }
    }

 

[已解决]在 | 中强制使用 Json() 的小写属性名称9to5答案 (9to5answer.com)

 

posted @ 2022-12-28 16:10  岭南春  阅读(35)  评论(0)    收藏  举报