我有一个带有以下签名的动作方法,
ActionResult Search(string searchQuery)
从表单按钮提交的部分视图调用此方法。问题是,请看下面的2种模式。当我从我的页面提交搜索关键字时,它使用以下网址(假设搜索关键是工具)
Search/?searchQuery=tool
但是如果我点击某个工具,那么
Search/tool?searchQuery=garden
现在我的方法是在参数中读取工具而不是花园(当然是预期的)。我认为这与项目本身的上下文和搜索的上下文中的项目的错误呈现有关。
有解决此问题的好方法吗?我想阅读查询字符串术语并从主搜索上下文中搜索它,即Search/?searchQuery=<term>
,无论我在哪里。
答案 0 :(得分:2)
要获得QueryString
,请在控制器中编写如下内容:
var mystring =Request.QueryString["searchQuery"];
无论query string
中的位置如何,都会获得url
。
答案 1 :(得分:1)
将输入重命名为
ActionResult Search(string searchQuery)
然后,模型绑定器将查询字符串参数反序列化为该输入值。它适用于路径参数和查询字符串参数。