Asp.net Web Api によって生成された既定のテンプレートを使用しています。私は Get() 部分で作業しています:
// GET api/values
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
何らかの理由で、クエリ文字列にアクセスするために必要な唯一のことは、入力文字列変数を作成することだけだと思いました。だから私は生成されたデフォルトのコントローラーにもう1つの関数(私が行った唯一の変更)を作成しました:
public IEnumerable<string> Get(string queryString)
{
return new string[] { "value3", "value4" };
}
両方のメソッドにブレークポイントを配置しましたが、クエリ文字列を追加しても、常にパラメーターのない関数に移動します。したがって、私がhttp://mybaseurl/api/values?foo=f
それに行くと、get(string queryString) の代わりに Get() になります。思った通りにいかない?Get() 関数を使用してクエリ文字列にアクセスできることはわかっていますがRequest.RequestUri.ParseQueryString();
、可能であればこのように分離することを好みます。