В моем веб-приложении мои параметры могут содержать всевозможные сумасшедшие символы (русские символы, косые черты, пробелы и т. Д.) И поэтому не всегда могут быть представлены в URL как есть.
Отправка их на весёлый путь сработает примерно в 50% случаев. Некоторые вещи, такие как пробелы, уже где-то закодированы (я полагаю, в выражении Html.BuildUrlFromExpression). Другие вещи (например, "/" и "*") не являются.
Теперь я не знаю, что делать дальше, потому что, если я сам их кодирую, моя кодировка снова будет частично закодирована и в итоге окажется неправильной. Если я не закодирую их, некоторые символы не смогут пройти.
Я вручную .replace () символы, с которыми у меня были проблемы.
Это, конечно, не очень хорошая идея.
Идеи
- Изменить -
Я знаю, что в моем распоряжении множество библиотек кодирования / декодирования.
Похоже, что фреймворк MVC уже пытается сделать это для меня, но не полностью.
<a href="<%=Html.BuildUrlFromExpression<SearchController>(c=>c.Search("", 1, "a \v/&irdStr*ng"))%>" title="my hat's awesome!">
сделает меня
<a href="/Search.mvc/en/Search/1/a%20%5Cv/&irdStr*ng" title="my hat's awesome!">
Обратите внимание, что косая черта, звездочка и амперсанд не экранированы.
Почему некоторые сбежали, а другие нет? Как мне теперь избежать этого должным образом?
Я что-то не так делаю или это фреймворк?