2

次のシグネチャを持つアクション メソッドがあります。

ActionResult Search(string searchQuery)

これは、フォームから送信されたボタンの部分ビューから呼び出されます。問題は、以下の2パターンを見てください。自分のページから検索キーを送信すると、次の URL が使用されます (検索キーがツールであるとします)

Search/?searchQuery=tool

しかし、ツールをクリックすると、

Search/tool?searchQuery=garden

今、私の方法は庭の代わりにパラメータでツールを読んでいます(もちろん期待されています)。これは、アイテム自体のコンテキストと検索のコンテキストの両方からアイテムが正しく表示されていないことに関係していると思います。

この問題を解決する良い方法はありますか? クエリ文字列の用語を読み取り、メインの検索コンテキストから検索したい、つまりSearch/?searchQuery=<term> どこにいても検索したい。

4

2 に答える 2

2

を取得するQueryStringには、コントローラーで次のように記述します。

var mystring =Request.QueryString["searchQuery"];

これにより、query stringがどこに配置されていても取得されますurl

于 2013-07-16T12:22:52.600 に答える
1

入力の名前を次のように変更します

ActionResult Search(string searchQuery)

次に、モデル バインダーはクエリ文字列 param をその入力値に逆シリアル化します。ルート パラメータとクエリ文字列パラメータの両方で機能します。

于 2013-07-16T02:55:18.067 に答える