我有一个具有以下签名的操作方法,
ActionResult Search(string searchQuery)
这是从表单提交按钮的局部视图调用的。问题是,请查看下面的两个模式。当我从我的页面提交我的搜索关键字时,它使用以下url(假设搜索关键字是工具)
Search/?searchQuery=tool
但如果我点击一个工具,
Search/tool?searchQuery=garden
现在我的方法是读取参数中的工具,而不是花园(这当然是意料之中的事)。我认为这与项目本身和搜索上下文中对项目的不正确呈现有关。
有没有解决这个问题的好方法?我想读取查询字符串项,并从主搜索上下文(即Search/?searchQuery=<term>
)中搜索它,无论我在哪里。
要获得QueryString
,您应该在控制器中编写以下内容:
var mystring =Request.QueryString["searchQuery"];
无论url
放在哪里,这都会得到query string
。
将输入重命名为
ActionResult Search(string searchQuery)
然后,模型绑定器将把查询字符串param反序列化为该输入值。它适用于路由参数和查询字符串参数。