获取请求MVC查询字符串

时间:2013-02-23 06:16:37

标签: jquery razor asp.net-mvc-4 httpwebrequest asp.net-mvc-routing

我正在使用ASP.NET MVC,我有一个用户输入的搜索表单。提交表单时,表单中的数据将传递给我的索引操作,以返回显示所请求数据的视图。

在我的索引操作方法中,我使用输入的数据来更新视图。

用户不必输入表单的所有字段,因此我的操作接收的数据具有空的参数键。但我只想要在网址中包含值的键。

我得到的,不可取的例子:

http://www.domain.com/searchresults?name=&age=&id=98787879

正如您所看到的,姓名和年龄没有价值。如果我摆脱地址栏中的那些,正确的数据仍然可以正确显示。

我想要的网址只是

http://www.domain.com/searchresults?id=98787879

有没有办法在进入action方法之前解析查询字符串。也许使用Ajax来截断不必要的密钥?但那我怎么能提交并转到页面呢?

2 个答案:

答案 0 :(得分:1)

在这种情况下,您可以先在搜索按钮上调用javascript函数,然后单击该函数构建查询字符串和网址并触发指定的Action

答案 1 :(得分:1)

你可以通过javascript做到这一点但是构建查询字符串(我假设表单的类型是GET)是浏览器的工作,我不会干扰它或者遇到确保你的javascript的麻烦适用于所有浏览器。

即使效率较低,我也只是在MVC控制器中使用this.RedirectToAction调用,并将请求重定向到未定义参数的方法的重载(即url只有具有值的参数)。这样,用户的浏览器将有额外的往返,因为它将首先从您的控制器接收重定向响应,但您不需要在客户端处理javascript。