图像控件不使用mappath属性vb.net显示图像

时间:2016-03-02 00:06:21

标签: asp.net vb.net

我正在尝试动态设置图像。图像控件不显示图像,但显示替换文本。我正在使用VS 2008和vb.net。我使用this帖子中的信息来构建代码。在调试期间,文件路径是正确的。

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" />

传递给ImageUrl时使用“IO.Path.combine”是错误的吗?

更新:使用MapPath属性设置图像路径,从此thread和此thread获取的经验教训仍然可以解决这个问题。理论上,mappath应该在我正在测试的任何环境中检测图像文件夹的文件路径。

我可以获得图像的唯一方法是如果我硬编码文件名值如下(完全删除任何mappath代码和system.io.path.combine()代码)。顺便说一句我正在使用Int会话变量,Session("EmpID")转换为字符串以创建文件名属性(例如12345) - 我使用的所有转换方法都没有效果:

1. Session("EmpID").ToString() (or  Convert.ToString(Session("EmpID")) 
2. strEmpID =Session("EmpID").ToString() + ".jpg"


strImgURL = "http://server/images/" + strEmpID + ".jpg"

1 个答案:

答案 0 :(得分:0)

根据您提供的链接, System.IO.Path.Combine 会自动向字符串添加正斜杠。然后尝试在strImgURL结束时删除多余的正斜杠:

  Dim strImgURL As String = "C:\fldr1\fldr2\Projfldr3\images\emps"

希望这会有所帮助。 :)