Как вы получаете каталог приложения ASP.NET MVC? - PullRequest
0 голосов
/ 17 октября 2008

Вопрос новичка ...

Если у меня есть файл, который находится в корне веб-приложения. Как программно запросить путь к этому файлу? т.е. в каком каталоге он находится?

Ответы [ 4 ]

2 голосов
/ 17 октября 2008
System.Web.HttpServerUtility.MapPath( "~/filename.ext" );

даст вам физический (дисковый) путь, который вы будете использовать с методами System.IO и другими.

System.Web.Hosting.VirtualPathUtility.ToAbsolute( "~/filename.ext" );

даст вам «абсолютный» виртуальный путь. Это не будет полный URL-адрес, но также не обязательно является корнем домена. Это может быть что-то вроде

/admin/filename.ext

если приложение укоренено в подкаталоге.

0 голосов
/ 11 июля 2012

Старый вопрос, я знаю, но нашел его при поиске аналогичного ответа. Если API не изменился, причина, по которой гарпо не работает, заключается в том, что MapPath является методом экземпляра, а не статическим методом. Но не бойтесь - в каждом экземпляре Controller присутствует HttpServerUtility - свойство Server. Так что в вашем случае, если вы находитесь внутри контроллера (или, я подозреваю, представление):

var appRoot = Server.MapPath("~/");

Это должно сработать!

0 голосов
/ 17 октября 2008

Если вы находитесь в разметке ASPX, вы можете перейти на C # и использовать метод ResolveUrl следующим образом:

<%= Page.ResolveUrl("~/PathFromRoot/YourFile.pdf") %>
0 голосов
/ 17 октября 2008

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

Однако я нашел то, что мне было нужно с System.Web.HttpRuntime.AppDomainAppPath

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