WebBrowser сохраняет закодированный URL / URI, не декодирует - PullRequest
3 голосов
/ 15 февраля 2011

У меня есть веб-браузер в приложении win form, и у меня возникают проблемы при открытии URL.

URL, который я передаю как новый экземпляр URL, кодируется:

/ как% 2f,? как% 3f и = как% 3d

Но когда я отлаживаю свой код, я вижу, что абсолютный URL или любой другой из webbrowser.url.* декодируется как / , ? и = .

Как сохранить кодировку URL? URL не будет работать, если он не закодирован таким образом.

Ответы [ 2 ]

1 голос
/ 15 февраля 2011

Я нашел решение моей проблемы, когда у вас есть URL, который выглядит примерно так:

domain.com / действие / DoAction /? Идентичности = 12354698789

И вы хотите, чтобы это было закодировано так:

domain.com / входа в систему? ReturnUrl = действие% 2fdoaction% 2f% 3fidentity% 3d12354698789

Это не работает в вашем веб-браузере. Он декодирует его по первому URL.

Мне нужен id в контроллере doaction, поэтому я использовал этот код:

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

Возвращает этот URL, если не уверены, отладите и проследите, вы найдете правильный ключ и значение.

0 голосов
/ 15 февраля 2011

Почему это проблема?

Если вы хотите не декодированный URL, используйте Свойство HttpRequest.RawUrl . Строка запроса автоматически декодируется по умолчанию, и нет открытого параметра, который ее отключил бы.

...