C# 使用jQuery将多个参数发布到Web API
和我之前的许多人一样,我正在尝试将多个参数传递给Web API项目。我尝试过这个网站上提供的几种解决方案,但都没有成功。我最近失败的迭代如下所示: 控制器 Web API路由配置 jQuery 小提琴输出 Fiddler显示正确传递的JSON变量,在原始视图中我可以看到: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
{“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";