2

我正在尝试显示在项目目录下创建的文件夹中的图像,名称为 Images。

我正在尝试访问star.gifImages 文件夹中的内容。

这是我用于访问图像的一小段代码

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但它没有用。

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

4

3 回答 3

4

只需删除Server.MapPath。此调用将返回服务器上的物理位置客户端无法访问该位置!

MSDN 服务器.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);
}
于 2012-09-24T18:50:01.697 回答
1

Server.MapPath将返回服务器上的本地路径,例如C:\Images\star.gif. 您的浏览器将无法解析该网址。

只需使用相对网址:

rating.ImageUrl = "~/Images/star.gif";
于 2012-09-24T18:51:23.197 回答
0

尝试添加 runat 属性以便它从根目录解析?

rating.Attributes.Add("runat", "server");
rating.ImageUrl = "~/Images/star.gif";
于 2012-09-24T18:49:00.903 回答