Подтвердить что ты не робот

Как использовать Url.Content( "~\stuff\hi.jpg" ) в коде контроллера?

Мне нужен результат Url.Content("~\stuff\") в коде контроллера,

Как это получить?

4b9b3361

Ответ 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/");