我想动态设置图像。图像控件不显示图像,但显示替代文本。我使用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