让asp.net mvc的Action支持jQuery直接提交的javascript对象(8)

来源:未知 责任编辑:责任编辑 发表时间:2014-05-26 11:00 点击:

        return null;
    }
}

在做完上面的事情之后,我们就可以考虑把FormValueProviderFactory替换成为FormValueProviderFactoryEx了。
于是我们在Application_Start中,添加如下的代码:
 for (int i = 0; i < ValueProviderFactories.Factories.Count; i++)
{
    if (ValueProviderFactories.Factories[i] is FormValueProviderFactory)
    {
        ValueProviderFactories.Factories[i] = new FormValueProviderFactoryEx();
        break;
    }
}

 现在我们再来测试之前的代码:

很高兴的看到,我们的值,已经正确的解析出来了!
 

 

我们再来测试传递一个对象:
 $.post('/Test/PostTest', { obj: { Id: 1, Values: ['aa', 'bb', 'cc']} }, function (result) {
    //TODO:
}, 'json');
我们把Action的代码也稍作修改:
 [HttpPost]
public JsonResult PostTest( MyObject obj )
{
    //TODO:
    return Json( new { success = true });
}
MyObject的定义如下:
 public class MyObject
{
    public int Id { get; set; }
    public string[] Values { get; set; }
}
如预想中的一样,我们得到了下面的结果:

 4_thumb


 

OK,大功告成。
得于某种目的,上面的代码中有两处需要说明一下:
ArrayValueProviderResult  类中的
                if (elementType == typeof(object))
                {
                    Array.Copy(_Elements, array, l);
                }
当数组类型为object[]时,复制把原始的ValueProviderResult过去了,这里看个人需要可自己修改。
PS:只是很肤浅的实现了这种直接使用jQuery来提交对象给asp.net mvc的支持,代码未做优化,未作任何合理性的设计。
如果有需要的猴子,可以参考自己实现一个。

 

摘自 滴水穿石

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • 浅析.NET下XML数据访问新机制
  • asp.net 面试+笔试题目第1/2页
  • C# 邮件地址是否合法的验证
  • C#高级编程:数据库连接[1]
  • asp.net 设置GridView的选中行的实现代码
  • 经典C++程序1
  • IIS 自动回收导致后台定时器失效的问题解决
  • ASP.NET&#160;GridView列表代码示例
  • 微软ASP.NET站点部署指南(3):使用Web.Config文件的Transforma
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1