2013-07-16 43 views
2

我有一個動作方法具有以下簽名,MVC - 查詢字符串和動作參數問題

ActionResult Search(string searchQuery) 

這會從按鈕從表單提交的局部視圖調用。問題是,請看下面的2個模式。當我從頁面提交我的搜索鍵,它使用以下網址(假設查找關鍵字工具)

Search/?searchQuery=tool 

不過,如果我在一個工具單擊,然後,

Search/tool?searchQuery=garden 

現在,我的方法是閱讀工具中的參數而不是花園(這當然是預期的)。我認爲這是針對項目本身和搜索項目的背景中不正確的項目呈現。

是否有解決此問題的好方法?我想讀取查詢字符串術語,並從主要搜索上下文中搜索它,即無論我在哪裏,都可以搜索該術語,即Search/?searchQuery=<term>

+0

你能從視圖中顯示你的'ActionLink'或'Form'代碼嗎? –

+0

顯示你的代碼,你如何閱讀查詢字符串? –

+0

它不應該將工具讀入搜索查詢中,除非您有路由問題,但我們需要查看您的路由表。 –

回答

1

輸入重命名爲

ActionResult Search(string searchQuery) 

模型綁定,然後將反序列化的查詢字符串參數去那個輸入值。它將適用於路由參數和查詢字符串參數。

+0

對不起編輯提問。我只是輸入它,所以輸入錯誤。它是searchQuery – user446923

2

要獲得QueryString,在你的控制器,你應該寫這樣的事情:

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

這將得到query string無論身在何處放置在您的url