Web Apiを使った最初のMVC 4プロジェクトに取り組んでいます。
MVC 3では、次のようなクエリ文字列パラメーターを取得できます。
var unicornName = Request.Query["unicornName"];
しかし、MVC 4では、リクエストがHttpRequestBase
からHttpRequestMessage
に移行し、Queryパラメーターがなくなったようです。さて、うーん、わかりました。どうすれば入手できますか。ウェブでいくつかの例を見つけましたが、それらは馬鹿げています。
このフェローが推奨 RequestUriのクエリ文字列を「&」で分割し、パラメータとペアを見つけます。 およびこの例 は、キーと値のペアのリストを返す新しいリクエストオブジェクトでGetQueryNameValuePairs
メソッドを呼び出し、次にlinqを実行してキーと値を見つけることを示しています。とてもシンプルなものを手に入れるのは、実際にはこれほど逆ではあり得ません。何か不足していることを教えてください!
注:モデルバインディングの方法が理解でき、アクションのメソッドparamsを介してクエリ文字列パラメーターを取り込む必要がありますが、まだ時がありますフィルターなどで、クエリ文字列変数をリクエストから(簡単に?)引き抜く必要がある場合。
これはあなたが探しているものかもしれません、
var queryValues = Request.RequestUri.ParseQueryString();
Linqが本当に面倒な場合は、GetQueryNameValuePairs()
の結果を辞書にラップするだけです。
var requestQuery =
list.ToDictionary((keyItem) => keyItem.Key, (valueItem) => valueItem.Value);
次に、いつものように文字列パラメータを取得できます。
var unicornName = requestQuery["unicornName"];