В веб-приложении, над которым я работаю, мы хотели бы иметь возможность отображать информацию о ресурсах по заданному пути. Путь полностью виртуальный & ndash; он существует только в приложении & ndash; поэтому у нас нет особых проблем с тем, что пользователи устанавливают виртуальные пути, которые являются "странными" по обычным стандартам файловой системы.
Проблема: у нас есть маршрут, который читает что-то похожее на
/Files/{*path}
и мы пытаемся перенаправить с
Url.RouteUrl("File", new { path = somePath })
Обычно это работает, но не работает, если somePath содержит & или # среди других. В этих случаях я отстой. Я не могу UrlEncode(somePath)
на данный момент, потому что RouteUrl выполняет свою собственную кодировку URL, но я не могу оставить их как есть, потому что в противном случае они обрабатываются неправильно (octothorp не передается в данные маршрутизации, и амперсанд смущает IIS). Есть ли разумный способ обойти это? Или мне просто нужно реализовать собственные маршруты с помощью интерполяции строк?