【发布时间】:2012-12-13 20:22:34
【问题描述】:
我需要将动态 JSON 对象传递给我的 Web API 控制器,以便我可以根据它的类型对其进行处理。我曾尝试使用 JSON.NET 示例 that can be seen here,但是当我使用 Fiddler 时,我可以看到传入的 JObect 始终为空。
这是粘贴到 Fiddler 中的示例:
POST http://localhost:9185/api/Auto/PostSavePage/ HTTP/1.1
User-Agent: Fiddler
Content-type: application/json
Host: localhost
Content-Length: 88
{AlbumName: "Dirty Deeds",Songs:[ { SongName: "Problem Child"},{ SongName:
"Squealer"}]}
这里是我非常简单的 Web API 控制器方法:
[HttpPost]
public JObject PostSavePage(JObject jObject)
{
dynamic testObject = jObject;
// other stuff here
}
我是新手,我有几个关于这个领域的问题:
在这个特定的例子中我做错了吗?
可以说,更重要的是,是否有更好的方法来传递动态 JSON 对象(来自 JavaScript AJAX 帖子)?
【问题讨论】:
-
您应该在将 JavaScript 对象发布到服务器之前对其进行字符串化。您问题中显示的(当前)数据不代表有效的 JSON。
-
我无法在新创建的 MVC4 Web.API 项目中重现您的问题。我使用 fiddler 发送一个具有完全相同值的请求,并且
jObject参数正确填充了数据。可能您的路由有问题,您有自定义路由吗? -
感谢 nemesv。我也尝试了一个新项目,你是对的,jObject 很好。我确实有自定义路线,所以会在那里看看。
标签: asp.net-mvc json asp.net-mvc-4 asp.net-web-api