Как кодировать куски URL - PullRequest
0 голосов
/ 05 мая 2011

Я занимаюсь разработкой приложения ASP.NET MVC и управляю именами файлов в моих URL-путях.Мне нужно кодировать имена файлов URL, чтобы избежать ошибок в некоторых путях (например, когда используется символ «+», он не работает в режиме Mono / XSP).

Но мне нужно кодировать только имена файловНапример:

Например, с учетом этого ввода:

/dir1/this has spaces/file+name.txt

Мне нужен следующий вывод:

/dir1/this%20has%20spaces/file%2bname.txt

Обратите внимание, что я не хочу кодироватьразделитель пути.Любое предложение?

Заранее спасибо.


РЕДАКТИРОВАТЬ : я создаю свой URL, используя следующее:

   <%= Html.ActionLink(
            Html.Encode(revision.Name), 
            "Details", 
            "Items",
            Model.GetRouteParameters(revision.FullPath),
            null) %>

ГдеGetRouteParameters имеет следующий вид:

public object GetRouteParameters(string path)
{
    return new 
    {
        repository = ItemProvider.GetBrowsingObject().Repository, 
        path = path, 
        browsing = ItemProvider.GetBrowsingObject().Name
    };
}

Я хотел бы закодировать любой «опасный» символ в хранилище, путь или имена для просмотра.

1 Ответ

3 голосов
/ 21 ноября 2011

Вы можете использовать HttpUtility.UrlEncode для кодирования строк безопасным способом URL. Вам необходимо URL кодировать отдельные компоненты пути, а затем создать путь.

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