2012-05-23 61 views
0

我想指定文件的虛擬路徑,但我無法這樣做。如何在ASP.NET MVC中指定文件路徑

這裏是我的代碼:

int Course_Id = 1; 
int PortfolioID=1; 
int ChandidateID=1; 

string filepath = Server.MapPath("~/ePortfolio/PortFolioContent/" + Course_Id + "/Assignments/Exhb_" + item.PortfolioID + "_" + item.ChandidateID + ".jpg"); 

if(System.IO.File.Exists((filepath))) 
{        
    ViewBag.Thumbnail = filepath; 
} 

當我使用它使用Server.Mappath從一些其他的路徑獲取數據:
我原來的路徑是:
E:\ HOBBYHOMES(E-投資組合)\ HobbyHomesWebApp \電子檔案袋\ PortFolioContent \ 1個\分配
但走這條路
E:\ HOBBYHOMES(E-投資組合)\ HobbyHomesWebApp \ ActivityPostin \圖片\電子檔案袋\ PortFolioContent \ 1 \作業\ Exhb_1_1.jpg
我米沒有tanding這是爲什麼幹活so.Please幫我

+1

我沒有一個很好的解決方案,但這是爲什麼你迄今爲止嘗試過的不起作用。我不認爲〜擴展到Windows上的文件路徑中的任何東西 - 有些命令shell會這樣做,但不是文件系統本身。 '..'將基於當前的工作目錄(這可能是您正在運行的可執行文件的目錄,或者同樣無用的東西)。 – SirPentor

回答

2

嘗試string filepath = Server.MapPath("~/... ...jpg");

+0

嗨thanx 4 d回覆..我用你的方法,但仍然是問題nt resolved.Please看到我hav更新了我的問題。 – user1274646

0

您可以使用@ Url.Content( 「〜/內容/圖片/ YourImageName.png」)

+0

嗨thanx 4 d回覆,但是這個道路上的問題與wats的問題..我只能使用這個路徑 – user1274646

+0

請看我有更新我的問題。 – user1274646

+0

你會爲以下路徑 字符串文件路徑=使用Server.Mappath( 「〜/電子檔案袋/電子檔案袋/ PortFolioContent /」 + COURSE_ID + 「/任務/ Exhb_」 + PortfolioID + 「_」 + ChandidateID +「.jpg」); 1)E:\ HOBBYHOMES(E-PORTFOLIO)\ HobbyHomesWebApp \電子公文包\ PortFolioContent \ 1個\分配 2)E:\ HOBBYHOMES(E-PORTFOLIO)\ HobbyHomesWebApp \ ActivityPostin \ IMAGES \電子公文包\ PortFolioContent \ 1 \作業\ Exhb_1_1.jpg 我無法看到文件夾的e-組合。你能否再次更新你的問題,你想要什麼確切的路徑?按照我,你想要第二條路,獲得第一條路。 –

0

嘗試做這樣的事情:

Path.Combine(Server.MapPath("~/"),("ePortfolio\\PortFolioContent\\" + Course_Id + "\\Assignments\\Exhb_" + item.PortfolioID + "_" + item.ChandidateID + ".jpg")); 

從理論上講,它的結果與您之前失敗的結果相同。在實踐中,它可能會產生完全不同的答案。

這裏還有一個最近的問題(我目前找不到),這突出顯示有時Server.MapPath(「〜/ .. etc ..」)在重寫的請求路徑上行爲異常。您是否正在重寫試圖形成此路徑的請求?

+0

nopes m nt再次調用它我這樣寫它 string filepath = Server.MapPath(「〜/ ePortfolio/PortFolioContent /「+ Course_Id +」/ Assignments/Exhb_「+ item.PortfolioID +」_「+ item.ChandidateID +」.jpg「);早些時候,我把它放在它正在執行的文件夾中,這可能是問題。所以現在我得到了它的工作:) – user1274646

相關問題