【发布时间】:2015-07-10 17:48:35
【问题描述】:
我正在制作一个 ASP.NET Web API Web 服务和一个 HTML/javascript 页面来测试它。我遇到的问题是传递一个复杂的数据参数并让它在 Web API 控制器中正确通过。
我知道有很多类似的问题,我已经阅读并尝试了解决方案,但都没有解决。我还阅读了一些 JQuery 文档。
这是我的控制器:
public class TitleEstimateController : ApiController
{
public IHttpActionResult GetTitleEstimate([FromUri] EstimateQuery query)
{
// All the values in "query" are null or zero
// Do some stuff with query if there were anything to do
}
}
public class EstimateQuery
{
// Various fields
}
WebApiConfig.cs 中的路由映射:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{query}"
);
还有 javascript:
var uri = 'api/titleEstimate/';
var query = {
"username": $("#user").val(),
// other fields
};
$.getJSON(uri,query)
.done(function (data) {
$('#product').text("OK");
})
.fail(function (jqXHR, textStatus, err) {
$('#product').text('Error: ' + err);
});
目前我收到的是 404。我尝试了$.getJSON(uri + '/' + query),但也没有用。在传递此对象之前,我已成功调用它,因此我认为路由通常没问题。我尝试了一个类型转换器,但没有帮助,仍然是 404。有没有人看到我错过了什么/做错了什么?
【问题讨论】:
-
服务器端有异常吗?你检查过“输出窗口”吗?
-
调试输出中没有任何内容。
-
除了
uri之外,您做的一切都很好。有关详细信息,请参阅以下答案。
标签: javascript c# jquery asp.net asp.net-web-api