Строка усечения строки запроса после "#" - PullRequest
1 голос
/ 14 апреля 2020

Обновлено

Похоже, если строка имени папки содержит "#", она усекается в самой строке запроса, я попробовал ниже, но оба дают мне только Junli Zhuang вместо Junli Zhuang # Kangna Zeng

 Request.Url.Query
 Request.Querystring
1005 * Цзюньли Чжуан # Kangna Zeng 1007 * код = VST5ic61HC2UhAFGBLCzp0OF5x3V4WLZMdjRH% 2blY1iKVhBeHE9qwI8X% 2bPGQ1fYlg0eW3VHhLu9tvUqrInf8hHQffk% 2fr7IShrs70DM5ManybKon% 2bjz5RTzx8vl10Yo5ahimFoecxA% 2b8DAWOPUvlt% 2blsDy1WXU0Yfft6ENeG% 2bmX27Kj80BOfMR7J0x5oWpNXfWjj1RRPXNkFXOpPn3dfaSIMWb% 2fbdN% 2fjmwj5APwsw5uRA% 3d & вл = False & fp=%2f4.+Junli+Zhuang 1010 *

Решено -

1013 * у меня есть запрос строку, которая выглядит как ниже - 1015 * код = VST5ic61HC2UhAFGBLCzp0OF5x3V4WLZMdjRH% 2blY1iKVhBeHE9qwI8X% 2bPGQ1fYlg0eW3VHhLu9tvUqrInf8hHQffk% 2fr7IShrs70DM5ManybKon% 2bjz5RTzx8vl10Yo5ahimFoecxA% 2b8DAWOPUvlt% 2blsDy1WXU0Yfft6ENeG% 2bmX27Kj80BOfMR7J0x5oWpNXfWjj1RRPXNkFXOpPn3dfaSIMWb% 2fbdN% 2fjmwj5APwsw5uRA% 3d & вл = False & fp=%2f4.+Junli+Zhuang+&+Kangna+Zeng
I am reading the value of "fp" like below -
 string uploadDirectoryStructure = context.Request.QueryString["fp"].ToString()

it gives me - 4. Junli Zhuang 

but if you look at querystring it should give me - 4. Junli Zhuang & Kangna Zeng

I tried using like this but it did not help -

 string uploadDirectoryStructure = HttpUtility.UrlEncode(context.Request.QueryString["fp"].ToString())

Пожалуйста, предложите.

Ответы [ 2 ]

2 голосов
/ 14 апреля 2020

Ваша строка запроса ввода неверна. Символ & должен быть URL, закодированным в %26. В противном случае это указывает на следующую пару в строке запроса.

1 голос
/ 14 апреля 2020

Есть ли у вас контроль над приложением, которое генерирует строку запроса? Если он сгенерирован на веб-странице, вы можете использовать для него encodeURIComponent (), например, через javascript, который будет кодировать символ &.

encodeURIComponent("Junli+Zhuang+&+Kangna+Zen");

В противном случае, если он находится вне вашего контроля, тогда вы можете использовать Request.Url.Query в вашем действии контроллера и обрабатывать строку вручную, чтобы получить все после fp

 var startSegment = "&fp";
 var result = Request.Url.Query.Substring(myString.IndexOf(startSegment) + startSegment.Length);
...