WebBrowser保持url / uri编码不解码

时间:2011-02-15 09:05:22

标签: c# url encoding browser uri

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

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

  

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

但是当我调试代码时,我可以看到URL中的绝对webbrowser.url.*或其他任何内容被解码为 / ?< / strong>和 =

如何保持URL编码?如果URL没有像那样编码,则{{1}}将无效。

2 个答案:

答案 0 :(得分:1)

我找到了解决问题的方法,当你的URL看起来像这样:

  

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

你希望它编码如下:

  

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

这在您的网络浏览器中无效。它将其解码为第一个网址。

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

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

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

答案 1 :(得分:0)

为什么会出问题?

如果您想要未解码的网址,请使用HttpRequest.RawUrl Property。默认情况下,查询字符串会自动解码,并且没有可以将其关闭的公共参数。