国外某牛人的JsonModelBinder 实现 MVC 3.0

复制代码
public class JsonModelBinder : DefaultModelBinder
     {
         public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
         {

             if (!IsJSONRequest(controllerContext))
             {
                 return base.BindModel(controllerContext, bindingContext);
             }


             // Get the JSON data that's been posted
             var request = controllerContext.HttpContext.Request;
             var jsonStringData = new StreamReader(request.InputStream).ReadToEnd();
                return new JavaScriptSerializer().Deserialize(jsonStringData, bindingContext.ModelMetadata.ModelType);
             
         }

         private static bool IsJSONRequest(ControllerContext controllerContext)
         {
             var contentType = controllerContext.HttpContext.Request.ContentType;
             return contentType.Contains("FTchinaMVC/json");
         }
     }
复制代码
protected void Application_Start()
        {
            ModelBinders.Binders.DefaultBinder = new JsonModelBinder();
            RegisterRoutes(RouteTable.Routes);
        }
            AreaRegistration.RegisterAllAreas();

            RegisterGlobalFilters(GlobalFilters.Filters);

http://www.cnblogs.com/zihuxinyu/articles/extjs_jsonmodelbinder_mvc3_ajax.html

 

posted @   shiningrise  阅读(407)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css
点击右上角即可分享
微信分享提示