【问题标题】:WebBrowser keep url/uri encoded dont decodeWebBrowser 保持 url/uri 编码不解码
【发布时间】:2011-06-27 11:02:12
【问题描述】:

我在 win 表单应用程序中有一个网络浏览器,但在打开 URL 时遇到问题。

我作为新的URL 实例传入的 URL 编码为:

/ 作为 %2f , ?作为 %3f 和 = 作为 %3d

但是当我调试我的代码时,我可以看到URLwebbrowser.url.* 中的任何其他绝对值被解码为 /?=

如何保持URL 的编码? URL 如果不这样编码,将无法工作。

【问题讨论】:

    标签: c# url encoding browser uri


    【解决方案1】:

    为什么会出现问题?

    如果您想要未解码的 URL,请使用 HttpRequest.RawUrl Property。查询字符串默认自动解码,没有公共参数可以关闭它。

    【讨论】:

    • 好吧,我希望它被编码,因为它必须调用一个带有编码路径的 url,找到了我的问题的解决方案,很快就会发布
    • @Croconoster:嗯,我已经给了你一个解决方案(使用 RawUrl):)
    【解决方案2】:

    当您有一个看起来像这样的URL 时,我找到了解决问题的方法:

    domain.com/action/doaction/?identity=12354698789

    你希望它像这样编码:

    domain.com/logon?returnurl=action%2fdoaction%2f%3fidentity%3d12354698789

    这在您的网络浏览器中不起作用。它将其解码为第一个 url。

    我需要doaction 控制器中的id,所以我使用了以下代码:

    string orgId = ControllerContext.RouteData.Values["id"].ToString();
    

    它返回那个url,如果不确定,调试和跟踪,你会找到正确的键和值。

    【讨论】:

      猜你喜欢
      • 2012-06-17
      • 2013-01-13
      • 2012-05-01
      • 2022-11-18
      • 2012-12-28
      • 1970-01-01
      • 1970-01-01
      • 2011-08-05
      相关资源
      最近更新 更多