В MVC я пытаюсь использовать URL-маршрутизацию, чтобы получить результат действия с определенным вводом.
Примите во внимание следующее:
<%=Html.ActionLink("View", "Test", new with {.id = Url.Encode(dir\file}) %>
Мой контроллер использует HttpUtility.UrlDecode(id)
для получения оригинала. Сам контроллер использует File()
для получения файла в указанном каталоге \ file location. Однако появляется сообщение об ошибке, сообщающее, что
A potentially dangerous Request.Path value was detected from the client (%).
URL отображается как
http://home/dir%255cfile.txt
Я гуглил кодировку Url, а \
кодируется как %5c
. Откуда прибывает% 25? Это кодировка для%, но это означает, что кодирование выполняется дважды. Почему так и должно быть?