图像不显示在aspx网页
问题描述:
我正在编程一个webform应用程序,它显示图像。目前使用的LocalServer 的代码如下所示:图像不显示在aspx网页
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
foreach (string file in Directory.GetFiles(Server.MapPath("~/Data/")))
{
ImageButton ib = new ImageButton();
ib.ImageUrl = file;
ib.Width = Unit.Pixel(100);
ib.Height = Unit.Pixel(100);
ib.Style.Add("padding", "2px");
ib.Click += imageButton_Click;
Panel1.Controls.Add(ib);
}
}
private void imageButton_Click(object sender, ImageClickEventArgs e)
{
throw new NotImplementedException();
}
}
的网页代码看起来是这样的:
src="file:///C:/folder/WebApplication1/Data/Chrysanthemum.jpg"
也很正常。 在网页上显示面板,但图像不是,只有占位符。
请帮助我在asp.net真的史努比
答
MapPath
向你服务器内部文件或文件夹的物理路径。 为了在网页上显示你的图像,你需要使用一个webpath,无论是绝对还是相对于你的网站或显示的页面。基本上,你只需要在你的代码更改此:
ib.ImageUrl = file;
应该
ib.ImageUrl = "/data/" + Path.GetFileName(file);
的问题并不像这样涉及到.NET,但你的文件的路径。服务器上的物理路径当然不是您想要使用的,您应该将图像存储在webroot内的任何文件夹中并指向您的HTML源代码。 –
与我所做的有什么不同?我用Server.MapPath(),该文件夹是在webroot – tal
cfr我的答案...不要担心这是一个常见的错误。尽管理解物理路径和Webpath之间的区别很重要。您可以保持完全相同的物理路径,但通过更改您的IIS配置,webpath可能完全不同。基本上你的网站用户不应该知道,也不知道你的文件夹层次结构服务器端。 –