2017-11-29 12 views
0

私はこのようになりますアクションがあります。のWeb API 2アクションは、GETパラメータとして期待通りに動作していない

/// <summary> 
/// Search for customers/projects/tasks by title. 
/// </summary> 
/// <param name="q">The query to search by.</param> 
/// <param name="filters">Extra filters for the search query.</param> 
[Route("Search")] 
public IHttpActionResult GetSearch(string[] filters, string q = "") 
{ 
    ... 
} 

私は見つけることができる情報によると、私はに値を渡すことができるはずですがこれに似たURLを使用してfiltersパラメータ:残念ながら、私のために

http://application/controller/Search?q=query&filters=first&filters=second 

、私はこのアクション内filtersパラメータにアクセスしようと、それは常にnullです。

EDIT: 私のアプリケーションでは、APIのヘルプページを閲覧する、それが唯一のURIパラメータとしてqを示しています。

パラメータfiltersは、ボディパラメータとして認識されているようです。

Help page screenshot

誰もがこの動作を引き起こしている可能性がどのような考えを持っていますし、私はそれを修正できますか? (私はfiltersパラメータを作ることができますどのようにURIパラメータとして認識される。)

答えて

0

だから明らかにここに解決策はこれまでアクションを変更することでした:

public IHttpActionResult GetSearch([FromUri] string[] filters, string q = "") 
{ 
    ... 
} 
パラメータの前に [FromUri]

は、パラメータを強制的に本文からではなくURIから取得するようにしてください。

関連する問題