【发布时间】:2017-09-19 22:53:02
【问题描述】:
我之前发布了一个类似的帖子并得到了一些很好的答案,但我不小心删除了我的帖子,所以我发布了一个包含更多数据的修订版。
我正在构建一个 Web API 来发布和从我的视图中获取数据。与 API 通信效果很好,但我遇到了问题。
每当我通过发布请求发送数据时,都会收到 500:内部服务器错误。如果我从请求中删除数据,它工作正常。
有效的示例方法:
[HttpPost]
public string Test()
{
return "this works";
}
因为我没有将任何数据传递到上述方法中,所以我没有遇到任何问题。但是,每当我向请求中添加一些数据时,就像这样:
API方法:
[HttpPost]
public string TestWithVariables(string test)
{
return test;
}
AJAX 调用:
$.post({
url: myUrl + "/api/my-api/TestWithVariables",
data: { test: "123456" },
success: function (html) {
console.log("y")
},
error: function () {
console.log("n");
}
});
上面的代码在我的浏览器中输出这些错误:HTTP/1.1 500 Internal Server Error and XML Parsing Error: Root element not found。问题是,如果我在 API 方法的第一行设置断点,它永远不会被命中,这意味着该方法没有找到,或者由于某种原因被执行......?
我尝试过的一些东西:将我的参数分解为一个 TestClass 并使用[FromBody]。我也尝试过使用[FromUri],它实际上使方法执行,但我无法从那里访问值,因为我的值已发布在正文中。
任何想法可能导致这些问题?
【问题讨论】:
-
您的路线定义正确吗?
-
路由都很好 - 如果我将方法从它们执行的参数中剥离出来。
-
使用数据为:JSON.Stringify({ test: "123456" });
标签: asp.net-mvc asp.net-web-api