2015-10-12 8 views
5

私はここですべての同様の質問を読んだが、私は解決策を思いつくことができない。私はweb-apiメソッドを呼び出そうとしています。辞書パラメータをweb-apiメソッドに渡すにはどうすればいいですか?

[HttpGet] 
public SearchViewModel Get(SearchTypes type, string text, [FromUri]Dictionary<string, string> toyParams) 
{ 
    //Code here 
} 

と私は最後のパラメータをuriから取得したいと思います。私は

http://localhost:39101/#!/search/toys/fox?someParameter=123

http://localhost:39101/#!/search/toys/fox?toyParams[0].Key=someParameter&toyParams[0].Value=123

しかしtoyParams Dictionary常に空

を試してみました。代わりに、辞書の

+0

あなたがtoyParamsを得るためにそれらを分割し、長い文字列としてそれらを取り戻す、URLで値を区切るカンマたらどう。 – rasharasha

+0

解決策ではなく、ハックのようです。) – LbISS

+2

GETリクエストでURI経由で辞書のキー/値を渡します!!あなたが検索したいデータのために何らかのIDを持っていないのであれば、そういう巨大なデータをURIに渡す必要はありません。 – singsuyash

答えて

-3

一つの簡単な方法は、:MyProperty1MyProperty2MyProperty3が検索されなければならない何かに基づいてのparamsある

//DTO 
    public class SearchDTO 
    { 
     public int MyProperty1 { get; set; } 
     public int MyProperty2 { get; set; } 
     public int MyProperty3 { get; set; } 
    } 

。以下は

 //GET Method 
     public string Get([FromUri]SearchDTO searchDTO) 
     { 
      return "search result"; 
     } 

呼び出すURLです:

http://localhost:56880/api/values?myproperty1=1&myproperty2=2&myproperty3=3

+0

古い答えですが、これは良い解決策ではありません。この解決策が無効な複数のダイナミクスパラメータを渡す必要があるという文脈では、 – Fernando

+0

GETリクエストの場合、他の方法はありますか? – singsuyash

+0

私は本当に "GETリクエストの場合は他の方法がありますか?" Downvoters、あなたは説明してください(私は何かを学びたいので知りたい) – singsuyash

関連する問題