【发布时间】:2014-11-06 17:55:30
【问题描述】:
我必须使用 4.0 框架来创建 Web API,但我无法发出请求:
public class ChartDataApiController : ApiController
{
[HttpGet]
public List<ChartDatum> GetData(int lowerBound, int upperBound)
{
return new List<ChartDatum>();
}
}
我现在有这个只是为了确认我真的可以完成这个动作。请求:
var url = window.location.protocol + "//" + window.location.host + "/api/ChartDataApi/GetData";
$.ajax({
url: url,
type: "GET",
data: {
lowerBound: lowerBound,
upperBound: upperBound
},
dataType: "json",
success: function(response) {
graph.draw(response);
},
error: function(message) {
//error handler logic
}
});
我只是无法执行此操作。我尝试将其转换为 POST 只是为了看看我是否可以让它工作但无济于事。服务器错误给出 404(必须修改才能提交):
GET http:// (url) : port# /api/ChartDataApi/GetData?lowerBound=0&upperBound=29 404(未找到)
只要我不尝试通过查询字符串或请求正文传递任何参数,我就可以发出请求。我也试过在参数前面加上 [FromUri] 属性,但这也没有用。
这里是 web api 路由配置(只是默认):
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
我之前也提出过这类请求,但总是在 4.5 框架中,并认为这可能是框架之间的差异。
【问题讨论】:
标签: c# asp.net-mvc asp.net-4.0