C# 使用jQuery将多个参数发布到Web API

C# 使用jQuery将多个参数发布到Web API,c#,jquery,json,asp.net-web-api,C#,Jquery,Json,Asp.net Web Api,和我之前的许多人一样,我正在尝试将多个参数传递给Web API项目。我尝试过这个网站上提供的几种解决方案,但都没有成功。我最近失败的迭代如下所示: 控制器 Web API路由配置 jQuery 小提琴输出 Fiddler显示正确传递的JSON变量,在原始视图中我可以看到: {“userID”:5,“username”:“testuser”} 行刑时 救命啊! 我认为问题在于Web API,考虑到我的文章在Fiddler中的格式似乎是正确的,使用JSON参数很困难。有什么想法吗?您的jQuery

和我之前的许多人一样,我正在尝试将多个参数传递给Web API项目。我尝试过这个网站上提供的几种解决方案,但都没有成功。我最近失败的迭代如下所示:

控制器 Web API路由配置 jQuery 小提琴输出 Fiddler显示正确传递的JSON变量,在原始视图中我可以看到:

{“userID”:5,“username”:“testuser”}

行刑时
救命啊!
我认为问题在于Web API,考虑到我的文章在Fiddler中的格式似乎是正确的,使用JSON参数很困难。有什么想法吗?

您的jQuery ajax调用没有失败吗?检查一下

var apiUrl = "http://localhost:55051/api/UserController/Post";
查看您的代码,这可能是:

var apiUrl = "http://localhost:55051/api/User";
word controller通常不是URL的一部分。您不必显式地调用POST,它应该按照约定选择它,因为您的ajax调用是POST

编辑:

如注释所示,上述内容和ajax调用中的大小写


我个人使用Firebug(Firefox扩展)来调试类似的案例。如果您发现在这种情况下它比fiddler更方便。

我猜您必须在jquery中将:{userDTO:{userID…}作为数据传递。 请求已包装。 当然,你必须把它严格化

现在,您传递参数,但没有一个参数与userDTO匹配,因此它将获得默认值


请参见我之前的回答:

这可能与当前的问题有关,但是
数据类型:“json”,
应该是
数据类型:“json”,
对于contentType也一样,事实上,银行的Sushanth和Joppe,你的建议奏效了!好的。我在创建问题时手工编辑了代码,删除了一些命名,并留下了错误。然而,最初的问题仍然存在,但通过您的案例敏感性回答解决了。万分感谢!:)
var apiUrl = "http://localhost:55051/api/User/Post";
var userDTO = {
   userID: 5,
   username: "testuser"
};

$.ajax({
   type: "POST",
   url: apiUrl,
   data: JSON.stringify(userDTO),
   datatype: "json",
   contenttype: "application/json; charset=utf-8"
)};
userID = 0
username = null
var apiUrl = "http://localhost:55051/api/UserController/Post";
var apiUrl = "http://localhost:55051/api/User";