【问题标题】:Query string with slashes "/" not working in asp.net mvc?带有斜杠“/”的查询字符串在asp.net mvc中不起作用?
【发布时间】:2009-11-23 13:11:49
【问题描述】:

我这里有一个特殊情况:
我的 action 方法接受一个参数,这个参数应该是一个完整的 url(例如http://www.somesite.com/article/onesite?hello=whatever&etc=blah)。当使用旧的 asp.net(哦,对不起,我的意思是 web 表单)时,这工作得很好,但是当使用 asp.net mvc 并准备所需的路由时(“/myaction/{inputUrl”,对 inputUrl 没有限制)它失败。如果网址有任何斜杠,我会收到“错误请求”异常。我该怎么办?我应该在传入的 url 上添加一个正则表达式约束以匹配一个 web url吗?亲爱的 SO Gus,你觉得怎么样?

PS:资源将从 iPhone 应用程序请求,这意味着,我无法控制即将到来的 url(即我无法对其进行编码!)

提前致谢。

【问题讨论】:

  • 您是否尝试在发送前对查询字符串进行 html.encode 编码?
  • 实际上请求将来自 iPhone 应用程序,我无法控制在发送之前对 url 进行编码!
  • 然后使用encodeURIComponent用javascript对其进行编码

标签: asp.net asp.net-mvc query-string


【解决方案1】:

看到这个问题URL-encoded slash in URL

即使是 UrlEncode 也无济于事。 MVC2 中的行为变化。

【讨论】:

    【解决方案2】:

    将您的路线修改为/myaction/{*inputURL*}。这将在 myaction 之后捕获所有内容。

    【讨论】:

    • 我已经将一条包罗万象的路线设置为其他路线。我不能有多个包罗万象的路线。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 2015-09-06
    • 1970-01-01
    • 2013-02-11
    • 1970-01-01
    相关资源
    最近更新 更多