[英]Testing a GET request that takes an object as a parameter (Asp.NET WebApi Controller)
[英]Can't use object as parameter in WebAPI get request
我有一個名為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
請求不能有機構。
試一試。 這在過去對我有用
[System.Web.Http.AcceptVerbs("GET")]
[System.Web.Http.HttpGet]
[Route("api/myreport/{dateParams}")]
public HttpResponseMessage Get([FromUri]DateParams dateParams) {}
您可能正在使用System.Web.Mvc
命名空間
我已經用DateTime格式看了幾次,更好的方法可能是將它們定義為對象中的字符串並將其解析為代碼/模型中的日期。
要進行測試,請嘗試“字符串”並查看是否有效,然后如果您仍需要使用DateTime類型定義模型,則需要遵循一些規則。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.