2013-02-18 88 views
1

當我嘗試運行此給我類字段例外如下所示:爲MapPath的字段對象參考

一個對象引用是所必需的非靜態字段,方法或 屬性「的System.Web .UI.Page.MapPath(string)

爲什麼?

後面的代碼:

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 2013-02-18 18:49:52

+2

@Win或'@「\ pic」' – DiskJunky 2013-02-18 18:50:12

+0

正如DiskJunky所說,您也可以使用'at'符號。 TheCampp - 它基本上返回您的網站的實際文件夾內的圖片文件夾。例如,c:\ wwwroot \ yoursite \ pic – Win 2013-02-18 18:52:23

0

MSDN文檔:

...在路徑開頭的斜線(/)指示到現場的絕對虛擬路徑。

所以你的「〜」是錯誤的和不必要的。

+0

我刪除,並再次同樣的問題。 – TheChampp 2013-02-18 18:43:31

+0

@ TheChampp是MapPath(「/ pic」)返回一個有效的結果嗎? – 2013-02-18 18:46:14

1

嘗試Server.MapPath()HttpContext.Current.Server.MapPath()