从服务器端asp.NET动态设置图像控制图像

| 我有一个Webforms网站,用户在其中上传文件,文件名等保存到DB。这些文件然后显示在数据列表中。我正在尝试获取此数据列表以显示不同的图像(图标)来表示文件类型。 这是我的代码。 fm.getIcon是一个自定义函数,它将服务器上的完整文件路径返回到表示文件类型的适当映像。 当我调试代码时,我可以验证图像是否确实存在于imgFile路径中
Private Sub DataList1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles DataList1.ItemDataBound

        Dim docName As Label = e.Item.FindControl(\"fileNameLabel\")
        Dim docImage As Image = e.Item.FindControl(\"image1\")
        Dim imgFile As String = fm.getIcon(My.Computer.FileSystem.GetFileInfo(docName.Text).Extension)
        docImage.ImageUrl = imgFile

End Sub
我的问题是图像未加载。如果我将imgFile替换为图像的硬编码路径,则效果很好。 我想念什么?     
已邀请:
请尝试这个。 //第一种方法
string fileLocation = Server.MapPath(\"~/Images/MyFile.jpg\");

FileInfo fileInfo = new FileInfo(fileLocation);

string fileExtension = fileInfo.Extension;
//第二种方法
System.IO.Path.GetExtension(Server.MapPath(\"~/Images/MyFile.jpg\")); // Result: .jpg
//您的get图标方法
docImage.ImageUrl = \"~/Icons/\" + 
fm.getIcon(Path.GetExtension(Server.MapPath(\"~/Images/MyFile.jpg\")));

public string getIcon(string extension)
{
  switch (extension.ToLower())
  {
    case \".asa\":
      return \"asa.png\";
    case \".asax\":
      return \"asax.png\";
    case \".ascx\":
      return \"ascx.png\";                
    default:
      return \"unknown.png\";
  }
}
    
您应确认“ 4”实际上返回的是图标图像的有效URL,而不是机器级别的文件路径。您应该能够将
fm.getIcon
的输出粘贴到浏览器中并查看图像。文件权限可能是一个问题,为网站提供服务的IIS进程需要能够读取图标图像文件。     

要回复问题请先登录注册