簡體   English   中英

不能在WebAPI get請求中使用object作為參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM