图像未在运行时显示

时间:2012-09-24 18:45:00

标签: c# asp.net

我正在尝试显示项目目录下名称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中设置了授权,但没有用。

请在代码中告诉我的错误。

3 个答案:

答案 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";