我正在尝试显示项目目录下名称Images创建的文件夹中的图像。
我正在尝试访问Images文件夹中的star.gif
。
以下是我访问图片的一小段代码
TableCell tc=new TableCell();
for (int j = 0; j < i; j++)
{
System.Web.UI.WebControls.Image rating = new System.Web.UI.WebControls.Image();
rating.ImageUrl = Server.MapPath("~/Images/star.gif");
rating.ID = j.ToString();
rating.AlternateText = "No image";
tc.Controls.Add(rating);
}
我甚至在web.config
中设置了授权,但没有用。
请在代码中告诉我的错误。
答案 0 :(得分:4)
只需删除Server.MapPath即可。此调用将返回您服务器上的物理位置,无法在客户端上访问!
MSDN Server.MapPath
MapPath方法映射指定的相对或虚拟 服务器上相应物理目录的路径。
新代码
TableCell tc=new TableCell();
for (int j = 0; j < i; j++)
{
System.Web.UI.WebControls.Image rating = new System.Web.UI.WebControls.Image();
rating.ImageUrl = "~/Images/star.gif"; // no need for Server.MapPath
rating.ID = j.ToString();
rating.AlternateText = "No image";
tc.Controls.Add(rating);
}
答案 1 :(得分:1)
Server.MapPath
将返回服务器上的本地路径,例如C:\Images\star.gif
。您的浏览器将无法解析该网址。
只需使用相对网址:
rating.ImageUrl = "~/Images/star.gif";
答案 2 :(得分:0)
尝试添加runat属性以便从根目录解析?
rating.Attributes.Add("runat", "server");
rating.ImageUrl = "~/Images/star.gif";