C# 中继器内的图像未显示
我有一个显示照片的转发器。它是这样填充的:C# 中继器内的图像未显示,c#,asp.net,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, "M
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">
我已经检查了路径,在“D:\MyPics\Photos\”中有一个名为“MyImageName.jpg”的文件
有人知道发生了什么吗?为什么此图像不显示?您需要使用图像的URL,而不是文件路径,
属性获取URL 使用ImageUrl属性指定要在中显示的图像的URL 图像控件。您可以使用相对或绝对URL。A. 相对URL将图像的位置与 未在服务器上指定完整路径的网页。路径是 相对于网页的位置。这使得移动更容易 将整个站点复制到服务器上的另一个目录,而不进行更新 密码。绝对URL提供完整的路径,因此移动 站点到另一个目录需要您更新代码 您也可以只传递物理路径,如果您有此图像文件夹的权限,则该路径将返回图像的正确url 诸如此类:
<asp:Image runat="server" ImageUrl='<%# Server.MapPath(string.Format("D:/MyPics/Photos/{0}",
Eval("PhotoLink"))) %>' />
我对此不太确定,但根据我的经验, 它通常与~/ 所以试试看:
~/MyPics/Photos/MyImageName.jpg
可能是因为它总是从主页开始引用是否有其他方法引用服务器硬盘上的图像?是的,使用server.MapPath方法,该方法将物理路径作为返回url的路径