【发布时间】:2025-11-27 19:35:01
【问题描述】:
当我尝试从 Web API 获取带有参数(类型 DateTime)的一些数据时,我收到错误 404 的响应:
消息 : “未找到与请求 URI 'http://localhost:53544/api/reservations/GetReservationByDate?date=Tue2017 年 1 月 31 日 16:00:00 GMT+0100' 匹配的 HTTP 资源。” 留言详情 : "没有找到提供控制器名称的路由来匹配请求 URI 'http://localhost:53544/api/reservations/GetReservationByDate?date=Tue Jan 31 2017 16:00:00 GMT+0100'"
我为此使用 AngularJS。在其他控制器中,我有带参数的方法,但没有 DateTime。可能有问题吗?在此之前我有错误
400 错误请求
配置路由对我有帮助。
这都是我的代码 - 控制器中的方法:
[HttpGet]
[ActionName("GetReservationByDate")]
[ResponseType(typeof(Reservation))]
public IHttpActionResult GetReservationByDate(DateTime date)
{
var reservation = db.Reservations.Where(d => d.Date.Equals(date));
if (reservation == null)
{
return NotFound();
}
return Ok(reservation);
}
RouteConfig.cs:
config.Routes.MapHttpRoute(
name: "CustomApi",
routeTemplate: "api/Reservations/GetReservationByDate/{date}",
defaults: new { date = RouteParameter.Optional}
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
和来自 AngularJS 的方法:
this.GetReservation = function (date) {
var promise = $http({
method: 'GET',
url: 'api/reservations/GetReservationByDate?date=' + date,
config: {
params: {
"date": date
}
}
})
.then(function (response) {
return response;
},
function (response) {
return response;
});
return promise;
}
我尝试了不同的组合,FromUri、FromBody,但结果总是一样的。
【问题讨论】:
标签: c# angularjs datetime asp.net-web-api routing