Я использую ASP.NET с MVC 2 и не могу преобразовать локальный URL-адрес файла в адрес сервера. Казалось бы, довольно простая и распространенная задача, но поиск в Google не дает мне хороших ответов. (Возможно, я отстой в поиске)
У меня есть контроллер, который берет файл из html-формы в виде и сохраняет его на диск. Мне нужно вернуть реальный URL этого файла обратно в представление. Какой бы метод я не использовал, я всегда получаю строку с локальным путем к файлу вместо http-пути.
Я подозреваю, что URL может быть переведен на http-адрес после развертывания проекта, но мне действительно нужен адрес сервера при отладке без необходимости что-либо жестко кодировать.
Рассмотрим следующий пример в некотором методе контроллера:
string url = Url.RequestContext.HttpContext.Server.MapPath("~/Content/Files/" + Path.GetFileName(file.FileName));
// outputs: "C:\\Users\\xxx\\Documents\\Visual Studio 2010\\Projects\\[ProjectName]\\Content\\Files\\file.png"
// whereas i'd like something like "http://localhost/Content/Files/file.png" instead
есть идеи?