我有一个名为DateParams
的C#类,定义如下:
public class DateParams {
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
}
在我的控制器中,我将Get
方法定义为:
[HttpGet]
[Route("api/myreport/{dateParams}")]
public HttpResponseMessage Get([FromUri]DateParams dateParams) {}
我从Angular调用控制器如下:
myService.GetMyReport = function (dateParams) {
return $http.get(serviceURLRoot + 'api/myreport/', dateParams, { withCredentials: true }).success(function (data) {
});
};
我一直收到错误:The requested resource does not support http method 'GET'.
我已经验证dateParams与结构定义的服务器端匹配,并且已正确填充。 StackOverflow上的类似问题是指在控制器方法的参数列表中使用[FromUri]
,但这还没有解决问题。我也尝试了[FromBody]
,但也失败了,可能是因为Get
请求无法获得正文。
答案 0 :(得分:0)
试一试。这在过去对我有用
[System.Web.Http.AcceptVerbs("GET")]
[System.Web.Http.HttpGet]
[Route("api/myreport/{dateParams}")]
public HttpResponseMessage Get([FromUri]DateParams dateParams) {}
您可能正在使用System.Web.Mvc
命名空间
答案 1 :(得分:0)
我已经用DateTime格式看了几次,更好的方法可能是在对象中将它们定义为字符串并将其解析为代码/模型中的日期。
要进行测试,请尝试"字符串"并查看是否有效,如果您仍需要使用DateTime类型定义模型,则需要遵循一些规则。