2
用這個掙扎了一下......我周圍讀了一遍,發現我應該使用HostingEnvironment.MapPath()。什麼是在MVC靜態方法中映射圖像路徑的正確方法
但是,每次嘗試使用此方法時,我都會被告知虛擬路徑不被允許。
我有位於下(項目)\內容\圖像文件\ MyImage.jpg
Image image = Image.GetInstance(HostingEnvironment.MapPath("/") + "/Content/Images.cslogo_highres.jpg");
找不到路徑「一部分C:\的Inetpub \ wwwroot的\內容\圖片\ cslogo_highres.jpg」。
Image image = Image.GetInstance(HostingEnvironment.MapPath("Content") + "/Images/cslogo_highres.jpg");
相對虛擬路徑 '內容' 這裏不允許使用。
我試了幾個其他的組合,搜索了一下,但一直沒有能夠拿出一些有用的東西。我真的只想使用ResolveUrl(〜/ Content/Images/cslogo_highres.jpg),但它似乎不是靜態方法下的選項。
對不起,如果這是微不足道的,但我得到沮喪的猜測和檢查路徑。
編輯:答案,令人驚訝的不是簡明扼要人們所期望的:
Image image = Image.GetInstance(HostingEnvironment.MapPath(VirtualPathUtility.ToAbsolute("~/Content/Images/cslogo_highres.jpg")));
頁面無法在這種情況下存在。 –
現在試一試,不確定代碼運行在什麼上下文中,我假設一個控制器? –
確實。對不起,我應該更清楚了。我檢查了你的編輯 - 但不,Url也無法從這裏訪問。它確實給了我一個新的googleable術語,儘管這最終得出了正確的答案。將您的幫助標記爲正確,將原始帖子中的答案編輯。 –