2013-02-18 2 views
1

Когда я пытаюсь запустить это дает мне исключение на класс поле ниже:Ссылки Объекта MapPath поле

Ссылка на объект требуется для нестатических полей, методы или свойств « System.Web .UI.Page.MapPath (строка)

Почему?

код позади:

public partial class Profile : System.Web.UI.Page 
{ 
    DirectoryInfo dir = new DirectoryInfo(MapPath("~/pic")); 

ответ

1
DirectoryInfo dir = new DirectoryInfo(
HttpContext.Current.Request.PhysicalApplicationPath + "\\pic")); 
+0

Теперь работа. Можете ли вы объяснить мне, почему, и в чем причина проблемы? – TheChampp

+2

@Win или '@" \ pic "' – DiskJunky

+0

Как сказал DiskJunky, вы также можете использовать знак 'at'. TheChampp - он в основном возвращает папку pic внутри фактической папки вашего веб-сайта. Например, c: \ wwwroot \ yoursite \ pic – Win

0

Из MSDN документации:

... слэш (/) в начале пути указывает абсолютный виртуальный путь к сайту.

Таким образом, ваш «~» является ошибочным и ненужным.

+0

Я удалил его и опять та же проблема. – TheChampp

+0

@TheChampp Является ли MapPath ("/ pic") верным результатом? –

1

попробовать Server.MapPath() или HttpContext.Current.Server.MapPath()

Смежные вопросы