ASP.NET MVC:删除未使用/不支持的查询字符串值

时间:2017-09-04 06:50:36

标签: asp.net-mvc query-string

如何清除/删除我的MVC操作不需要/支持的查询字符串参数?

例如,我的操作需要,比如一个id和一个bool标志,所以网址就像:http://localhost:someport/controller/action/?id=1&remove=true

但是,如果用户输入类似http://localhost:someport/controller/action/?id=1&remove=true&some-junk-param=0

的内容

然后,我希望在处理请求时删除some-junk-param并在地址栏中不显示。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果您需要摆脱不需要的查询字符串参数,您有两个常规选项:

  1. 在服务器端执行此操作。您只能通过重定向来实现此目的,这意味着当浏览器使用错误的查询字符串询问URL时,服务器会将浏览器重定向到具有良好查询字符串的URL。
  2. 注意事项:

    • 在这种情况下,我们只有清理查询字符串的冗余查询。
    • 用户将在浏览器历史记录中显示垃圾。
    1. 在客户端执行。 ASP.NET MVC模型绑定器将只从查询字符串中获取预期的参数,因此在查询字符串中包含其他值并不是什么坏事。您可以使用javascript在客户端检查您的网址,并使用History API(IE10 +)重建或不更改历史记录。
    2. 注意事项:

      • 在这种情况下,您必须支持JS和C#代码之间允许参数的一致性

      当然,每种方式都适用于它自己的情况,但是第二种方式更容易看到警告,因为它会影响开发人员的经验,而第一种方式会影响用户的经验。