2016-12-20 6 views
0

パラメータを使用してWeb APIコントローラのgetメソッドにアクセスすると、401の不正なエラーが発生し続けます。Route属性にパラメータを含めると401エラーが発生する

Get機能に開始日と終了日を送信する必要があります。私はdateParamsというオブジェクトに日付をラップしました。

Get関数のRoute属性にパラメータを含めないと、401エラーなしで正常にアクセスできますが、dateParamsはnullです。 Route属性にパラメータを含めると、401エラーが発生します。

これはエラーなしで動作しますが、dateParamsがnull:

 [HttpGet] 
     [Route("api/rawdatareport")] 
     public HttpResponseMessage Get(DateParams dateParams) { 
      return Ok(); 
     } 

これは401エラーがスローされます。

 [HttpGet] 
     [Route("api/rawdatareport/{dateParams}")] 
     public HttpResponseMessage Get(DateParams dateParams) { 
      return Ok(); 
     } 

これはDateParamsクラスは次のようになります。

public class DateParams { 
     public DateTime StartDate { get; set; } 
     public DateTime EndDate { get; set; } 
    } 

答えて

0

アクション引数に[FromUri]属性を追加してみてください:

[HttpGet] 
[Route("api/rawdatareport/")] 
public HttpResponseMessage Get([FromUri] DateParams dateParams) { 
    return Ok(); 
} 

そして、あなたは、クエリ文字列パラメータとしてJSONオブジェクトを送信することができますGETリクエスト

+0

上のクエリ文字列引数としてそれを送りますか? – Legion

+0

なぜあなたはそれがjsonオブジェクトである必要がありますか? – Pedro

+0

dateParamsはAngularJSから送信されるオブジェクトです。それ以外はどうすればいいですか? – Legion

関連する問題