Как использовать Url.Content( "~\stuff\hi.jpg" ) в коде контроллера?
Мне нужен результат Url.Content("~\stuff\")
в коде контроллера,
Как это получить?
Ответы
Ответ 1
Чтобы получить физический путь к файлу на диске:
Server.MapPath("~\stuff\")
Контроллеры также включают urlHelper, доступный как Url
, но это может быть не то, что вам нужно.
Каков результат, который вы ожидаете?
Изменить: В соответствии с вашим запросом на FilePath, Url.Content("~\stuff\")
должен работать? Если вы не используете действительно старый ASP.net MVC, у которого не было свойства Url на контроллерах.
Ответ 2
в служебном коде (то есть вдали от контроллеров), вы можете использовать:
string returnUrl = VirtualPathUtility.ToAbsolute("~/stuff/");
mvc1-3 предоставляет Url.Content("~/stuff/");
из UrlHelper в System.Web.Mvc, который может быть легко использован в вашем коде контроллера.
[отредактировано] - сделать тонкое различие в использовании VirtualPathUtility.ToAbsolute("~/stuff/")
.
Ответ 3
Внутри действия контроллера вы можете использовать свойство Url:
public ActionResult Index()
{
var url = Url.Content("~/stuff/");
...
}
Также обратите внимание на использование /
вместо \
при работе с относительными URL-адресами.
Ответ 4
MVC 3 предоставляет свойство Url на контроллере как UrlHelper объект
var url = Url.Content("~/stuff/");
Я не уверен, что он доступен в старых версиях MVC, но если вы не можете создать свой собственный
var urlHelper = new UrlHelper(ControllerContext.RequestContext);
var url = urlHelper.Content("~/stuff/");