像我之前的许多人一样,我正在尝试将多个参数传递给 Web API 项目。我已经尝试了这个网站上提供的几种解决方案,但都没有成功。我最近失败的迭代如下所示:
控制器
public class UserDTO
{
public int userID;
public string username;
}
[HttpPost]
public string Post([FromBody]UserDTO userDTO)
{
return userDTO.userID.ToString() + " " + userDTO.username;
}
Web API 路由配置
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
jQuery
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"
)};
提琴手输出
Fiddler 显示正确传递的 JSON 变量,在原始视图中我可以看到:
{"userID":5,"username":"testuser"}
执行时
userID = 0
username = null
帮助!
我认为问题出在 Web API 上,鉴于我的 POST 在 Fiddler 中的格式似乎正确,因此很难使用 JSON 参数。有任何想法吗?