![]() |
1
50
编辑: 随着MVC 3的到来,不再需要这种方法,因为它将被自动处理。- http://weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3-preview-1.aspx 可以使用此对象筛选器:
然后,您可以将其应用于控制器方法,如下所示:
因此,基本上,如果文章的内容类型是“application/json”,那么它将立即生效,并将值映射到您指定类型的对象。 |
![]() |
2
12
你说“我没有使用表单来操作数据”,但你正在做一个帖子。因此,实际上,您使用的是一个表单,即使它是空的。 阿贾克斯 dataType 告诉jquery服务器的类型 返回 不是你要经过的。Post只能传递表单。JQuery will convert data to key/value pairs 并将其作为查询字符串传递。来自文档:
因此:
|
![]() |
3
10
一个简单的jquery插件带来的不同体验尽管这个问题的答案早就过时了,但我还是发布了一个很好的解决方案,这个解决方案是我一段时间前提出的,而且非常简单 将复杂JSON发送到ASP.NET MVC 控制器动作,因此它们被模型绑定到任何强类型参数。
这个插件
支持日期
同样,他们也会被转换成
您可以在中找到所有详细信息 my blog post 在这里,我检查问题并提供完成此操作所必需的代码。 你所要做的就是在客户端使用这个插件。Ajax请求如下所示:
但这只是整个问题的一部分。现在,我们可以将复杂的JSON发回服务器,但由于它将被模型绑定到一个复杂的类型上,该类型可能在属性上具有验证属性,所以此时可能会失败。我有一个
solution for it as well
. 我的解决方案利用了jQueryAjax功能,在该功能中,结果可能成功或错误(如上面的代码所示)。所以当验证失败时,
|
![]() |
4
4
有
JavaScriptSerializer
你也可以用。这将允许您将JSON反序列化为.NET对象。有一个通用的
如果你的控制器
|
![]() |
5
2
此答案是使用对象过滤器的Darkon_uuu答案的后续:
我遇到了一个问题,就是如何将多个参数发送到一个操作方法,其中一个是JSON对象,另一个是纯字符串。我是MVC的新手,我刚刚忘记我已经用非半开视图解决了这个问题。 如果一个视图上需要两个不同的对象,我会怎么做。我将创建一个ViewModel类。如果我需要Person对象和Address对象,我将执行以下操作:
然后我将视图绑定到某个ViewModel。您可以对JSON做同样的事情。
然后在视图中,您可以对jquery使用简单的调用,如下所示:
|
![]() |
6
1
针对丹的上述评论:
我也遇到了同样的问题(MVC 3构建3.0.11209.0),下面的文章为我解决了这个问题。基本上,JSON序列化程序正在尝试读取一个不在开头的流,因此将该流重新定位为0“fixed”… |