Я разрабатываю приложение ASP.NET MVC и управляю именами файлов в своих URL-путях. Мне нужно закодировать имена файлов URL, чтобы избежать ошибок на некоторых путях (например, когда используется символ «+», он не работает в Mono/XSP).
Но мне нужно закодировать только имена файлов, например:
Например, учитывая этот ввод:
/dir1/this has spaces/file+name.txt
Мне нужен следующий вывод:
/dir1/this%20has%20spaces/file%2bname.txt
Обратите внимание, что я не хочу кодировать разделитель пути. Любое предложение?
Заранее спасибо.
EDIT: я создаю свой 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
};
}
Я хотел бы закодировать любой «опасный» символ в репозитории, пути или именах просмотра.