MVC-查询字符串和操作参数问题



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

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反序列化为该输入值。它适用于路由参数和查询字符串参数。

最新更新