Я обнаружил, что кодировка URL не работает, но пользовательская кодировка работает.
Я предполагаю, что ASPNET MVC использует файловую систему для анализа и маршрутизации, потому что символ в URL, который недопустим в файловой системе, вызывает ошибку 500 или 400.
Итак, я сделал замену двоеточий на юникод
○ символ на стороне javascript, а затем выполните обратное действие. как это:
браузер:
function myEscape(s){
return s.replace(':', '%C2%A1').trim();
}
в действии, вызовите это преобразование перед использованием аргумента:
private string MyCustomUnescape(string arg)
{
return arg.Replace("¡", ":");
}
Тот же подход работает для слешей - просто выберите другой символ Юникода. Конечно, если ваши строковые аргументы являются Unicode, то вам придется использовать непечатаемые символы для «закодированных» форм.