2

我有一个带有以下签名的操作方法,

ActionResult Search(string searchQuery)

这从表单提交按钮的部分视图中调用。问题是,请看下面的 2 种模式。当我从我的页面提交我的搜索键时,它使用以下网址(假设搜索键是工具)

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)

然后模型绑定器会将查询字符串参数反序列化为该输入值。它适用于路由参数和查询字符串参数。

于 2013-07-16T02:55:18.067 回答