У меня есть страница redir, которая принимает некоторые параметры запроса, в частности параметр «страница», который, в свою очередь, имеет свои собственные параметры запроса. Упрощенная версия может выглядеть так.Как я могу сохранить свои параметры с помощью Sytem.Uri?
http://www.example.com/redir.aspx?page=[escaped адрес] & два = 2
Следующий тест завершается неудачей, так как конструктор System.Uri является неэкранированными мой внутренний параметры страницы. (Kthx!)
Assert.AreEqual(
"http://www.ex.com/redir.aspx?page=inner.htm%3Fone%3D1%26two%3D2&three=3",
new Uri("http://www.ex.com/redir.aspx?page=inner.htm%3Fone%3D1%26two%3D2&three=3").ToString());
Я на самом деле получить http://www.ex.com/?page=inner.htm?one=1&two=2&three=3, который даже не похож на приличном URI мне, что с 2 знаками вопроса и не очень-то параметр, что «три» есть. Как вы можете видеть из теста, inner.htm имеет 2 параметра, один и два, а три для redir.
Я все мокрые? Это правильный способ передать URI в URI?
Как насчет 'нового Uri ("http://www.ex.com/redir.aspx?" + Uri.EscapeDataString ("страница = inner.htm% 3Fone% 3D1% 26two% 3D2 & три = 3")); ' – keyboardP