打赏

MVC jsonModelBuilder

  /// <summary>
    /// JsonModelBinderAttribute
    /// author:BearLee
    /// 2015/5/20 11:48:40
    /// </summary>
    public class JsonModelBinderAttribute : CustomModelBinderAttribute
    {
        public override IModelBinder GetBinder()
        {
            return new JsonBinder();
        }
    }
    public class JsonBinder : IModelBinder
    {
        public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
        {
            //return base.BindModel(controllerContext, bindingContext);
            if (controllerContext == null)
            {
                throw new ArgumentNullException("controllerContext");
            }

            if (bindingContext == null)
            {
                throw new ArgumentNullException("bindingContext");
            }

            var prefix = bindingContext.ModelName;
            string jsonString = controllerContext.RequestContext.HttpContext.Request.Params[prefix];
            if (jsonString != null)
            {
                var serializer = new JavaScriptSerializer();
                var result = serializer.Deserialize(jsonString, bindingContext.ModelType);
                return result;

            }
            else
            {
                return null;
            }


        }
    }

 

posted @ 2015-12-20 10:11  Bear.Tirisfal  阅读(249)  评论(0编辑  收藏  举报