【问题标题】:Bad request 400 for HttpUtility.UrlEncoded URL segmentsHttpUtility.UrlEncoded URL 段的错误请求 400
【发布时间】:2012-12-13 10:55:31
【问题描述】:

所以,如果我的应用程序 MVC url 中有 url 编码段,IIS 会抛出 BAD REQUEST 400。

例如 http://u.lasoo.com.au/Offer/*9289--750W-Generic-ATX12V-Power-Supply-%252449dot99/6355

注意http://u.lasoo.com.au/Offer/The-Giant-Good-As-Gone-7-Day-Sale/6354 工作正常。

将任意字符串转换为可接受的 MVC URL 段的正确方法是什么?

更新: URl 段应该类似于原始字符串。 Base64 编码完全转换了字符串。

【问题讨论】:

标签: asp.net-mvc model-view-controller


【解决方案1】:

您可以将其作为 get 参数传递,而不是在 url 中传递信息。像这样:

http://u.lasoo.com.au/Offer/?id=*9289--750W-Generic-ATX12V-Power-Supply-%252449dot99/6355

【讨论】:

    【解决方案2】:

    您尝试过 UrlEncode 吗? MSDN

    【讨论】:

      【解决方案3】:

      尝试使用字符串替换来删除或替换符号“:”、“%”、“*”、“/” - 文件夹名称中的任何非法符号。它们似乎把一切都搞砸了,而且似乎是 URL 路由系统的设计缺陷。

      【讨论】:

      • 这与文件夹名称无关,而是与路由有关,因此进行字符串替换不一定是最佳解决方案。
      猜你喜欢
      • 2014-12-11
      • 1970-01-01
      • 2018-05-31
      • 2022-06-23
      • 1970-01-01
      • 2016-06-20
      • 1970-01-01
      • 1970-01-01
      • 2019-06-27
      相关资源
      最近更新 更多