10

私はここで、WebApiの種類を使用した最初のMVC4プロジェクトに取り組んでいます。

MVC 3では、次のようなクエリ文字列パラメーターを取得できます。

var unicornName = Request.Query["unicornName"];

HttpRequestBaseしかし、MVC 4では、リクエストがaからaにHttpRequestMessageなり、Queryパラメーターがなくなったように見えます。それで、うーん、わかりました、どうすれば今それらを入手できますか。私はウェブ上でいくつかの例を見つけましたが、それらはばかげています。

このフェローは、RequestUriのクエリ文字列を「&」で分割し、パラメータとペアを見つけることをお勧めします。この例GetQueryNameValuePairsは、キーと値のペアのリストを返す新しいリクエストオブジェクトのメソッドを呼び出してから、linqを実行してキーと値を見つける方法を示しています。こんなに単純なものを手に入れるのは、これほど逆行することはできません。何か足りないものを教えてください!

:モデルバインディングの方法を理解しているので、アクションのメソッドparamsを介してクエリ文字列パラメーターを取り込む必要がありますが、クエリ文字列変数をリクエストから(簡単に?)取得する必要がある場合があります。フィルタで。

4

2 に答える 2

25

これはあなたが探しているものかもしれないと思います、

  var queryValues = Request.RequestUri.ParseQueryString();

https://stackoverflow.com/a/11729619/6819

于 2012-10-18T02:15:47.637 に答える
5

linqが本当に面倒な場合は、結果をGetQueryNameValuePairs()辞書にラップするだけです。

var requestQuery = 
    list.ToDictionary((keyItem) => keyItem.Key, (valueItem) => valueItem.Value);

次に、いつものように文字列パラメータを取得できます。

var unicornName = requestQuery["unicornName"];
于 2012-10-17T22:38:55.333 に答える