Передача пути к файлу через URL - PullRequest
0 голосов
/ 30 марта 2012

Мне нужно передать этот путь к файлу через мой метод действия:

<p><a href="/Cars/@Model.CarId/@car.ContainerPath/@Model.UserId/Url">@car.Name</a></p>

, например, @ car.ContainerPath - это строка "34_Creating%20Cars%20Forms/Exercise%20Cars/Audi%202010%20Parts%20Reference.pdf"

Мне нужно экранировать этокак-то думаю?Я бы предпочел не посылать это по URL, но с гиперссылкой я не вижу способа этого не делать.

ОБНОВЛЕНИЕ:

Для получения дополнительной информации вот метод действия, к которому он будет обращаться:

    public string GetFileZipDownloadUrl(CarViewModel model, string fileContainerPath)
    {
        string downloadUrl = string.Empty;
        downloadUrl = GetFileZipDownloadUrl(model.CarId,fileContainerPath, model.UserId);

        return downloadUrl;
    }

, поэтому я отправляю для путей fileContainerPath, например, в URL для этого параметра @ car.ContainerPath:

"55_Creating Cars Forms/Exercise Cars/Audi Parts Reference.pdf"

, поэтому URL-адрес маршрута перед запрошенным выглядит следующим образом, когдасформированный в этой гиперссылке:

http://Cars/55/55_Creating Cars Forms/Exercise Cars/Audi Parts Reference.pdf/20/Url

Мой метод действия просто должен использовать этот путь, чтобы получить ссылку на файл под капотом.

Ответы [ 2 ]

1 голос
/ 30 марта 2012

Если вы хотите просто избавиться от% 20 в URL, используйте кодирование / декодирование, как в ответе @ Xander. Однако, если какие-либо из ваших данных очень динамичны и могут содержать странные символы, вам следует подумать о добавлении методов Safe () и Unsafe (), которые удаляют все «опасные» символы для URL, а затем возвращают их к исходному значению.

0 голосов
/ 30 марта 2012

необработанный URL:

HttpUtility.UrlEncode(rawurl);

Расшифруйте закодированный URL:

HttpUtility.UrlDecode(encodedurl);

http://msdn.microsoft.com/en-us/library/system.web.httputility.urlencode.aspx

http://msdn.microsoft.com/en-us/library/system.web.httputility.urldecode.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...