我想動態設置圖像。圖像控件不顯示圖像,但顯示替代文本。我使用VS 2008與vb.net。我使用this的信息來構建代碼。在調試過程中,文件路徑是正確的。圖像控制不顯示圖像使用mappath屬性vb.net
VB代碼:
Dim strImgURL As String = "C:\fldr1\fldr2\Projfldr3\images\emps\" 'local dev path where visual studio solution is located
Dim filename As String = System.IO.Path.Combine(strImgURL, Session("EmpID").ToString() & ".jpg")
If (File.Exists(filename)) Then
imgEmp.ImageUrl = filename
Else
filename = System.IO.Path.Combine(strImgURL, "99999.jpg")
imgEmp.ImageUrl = filename
End If
ASPX:
<asp:image id="imgEmp" Runat="server" Height="100px" Width="77px"
AlternateText="Employee's picture" />
這是錯誤的用 「IO.Path.combine」 傳遞給的ImageUrl什麼時候?
UPDATE:在這個仍在工作與教訓使用的MapPath屬性來設置路徑圖片來自此thread這thread教訓。理論上,映射應該在我測試的任何環境中檢測映像文件夾的文件路徑。
我可以得到一個圖像顯示的唯一方法是如果我像下面硬編碼文件名值(完全刪除任何mappath代碼和system.io.path.combine()代碼)。順便說一句,我採取了詮釋會話變量,Session("EmpID")
轉換爲字符串創建文件名屬性(如12345) - 沒有的我使用的轉換方法是有效的:
1. Session("EmpID").ToString() (or Convert.ToString(Session("EmpID"))
2. strEmpID =Session("EmpID").ToString() + ".jpg"
strImgURL = "http://server/images/" + strEmpID + ".jpg"
請檢查您的結果'文件名',然後檢查它是否存在...這將有很大幫助。 – Ian