转发器内的图像没有显示出来

时间:2018-01-08 00:49:43

标签: c# asp.net

我有一个转发器来显示照片。它是这样填充的:

AcctRepeaterPhoto.DataSource = "";
dDateID = Convert.ToInt32(lDateID.InnerText);

saqConnection.conn = MySQLConn;
sqlDataAdapter adp = new SqlDataAdapter("Select * from MyTable", conn)
DataSet ds = New Dataset();
adp.Fill(ds, "MyPhotoPage");

AcctRepeaterPhoto.DataSource = ds;
AcctRepeaterPhoto.DataBind();

ds.Dispose;
conn.Close;

我100%确定这是有效的,因为我在表单的其他3个部分使用了几乎完全相同的代码,而且它们都运行良好。

ASP方面,我不太确定...

大部分内容都有道理,但显示图像的线条没有显示任何内容:

<asp:Image runat="server" ImageUrl='<%# string.Format("D:/MyPics/Photos/{0}", 
  Eval("PhotoLink")) %>' />

当我查看生成页面的源代码时,它将解析为

<img src="D:/MyPics/Photos/MyImageName.jpg">

但它只显示无效图像显示的空方格。

如果我将其切换为:

<asp:Image runat="server" ImageUrl='<%# string.Format("D:\\MyPics\\Photos\\{0}", 
  Eval("PhotoLink")) %>' />

它仍然只显示空方块,但这次页面的来源显示

<img src="D:\MyPics\Photos\MyImageName.jpg">

我已经检查了路径,并且在&#34; D:\ MyPics \ Photos \&#34;中有一个文件。叫&#34; MyImageName.jpg&#34;。

任何人都知道发生了什么?为什么这张图片没有显示?

2 个答案:

答案 0 :(得分:1)

您需要使用图像的URL而不是文件路径,
ImageUrl属性采用网址

  

使用ImageUrl属性指定要显示的图像的URL   图像控件。您可以使用相对或绝对URL。一个   相对URL将图像的位置与该位置相关联   网页未指定服务器上的完整路径。路径是   相对于网页的位置。这使得移动更容易   整个站点到服务器上的另一个目录而不进行更新   代码。绝对URL提供完整路径,因此移动   站点到另一个目录需要您更新代码。

您还可以将物理路径传递给Server.MapPath,如果您拥有此图片文件夹的权限,则会返回图片的正确网址

类似的东西:

<asp:Image runat="server" ImageUrl='<%# Server.MapPath(string.Format("D:/MyPics/Photos/{0}", 
  Eval("PhotoLink"))) %>' />

答案 1 :(得分:0)

我对此并不完全确定,但根据我的经验, 它通常与〜/

一起使用

所以请尝试:~/MyPics/Photos/MyImageName.jpg

也许是因为它总是从家里开始引用