[英]Image is not showing in image control asp.net
这是UI中的图像控件:
<asp:Image ID="Image1" ImageUrl='<%# Bind("strCLogo") %>' runat="server" width="200" Height="200"/>
这里是C#代码,我从数据库(customerstbl)抓取图像的链接,但无法将其与图像控件绑定,我可以看到源中的图像链接,但它没有显示:
protected void Page_Load(object sender, EventArgs e)
{
int nCID = Convert.ToInt32( Session["nCID"].ToString());
DataClasses1DataContext _dc = new DataClasses1DataContext();
CustomersTbl _customer = new CustomersTbl();
_customer = _dc.CustomersTbls.Where(a => a.nCID == nCID).FirstOrDefault();
Image1.ImageUrl = _customer.strCLogo.ToString();
}
这是我如何在数据库中保存图像的链接,似乎我在数据库中保存图像链接时有一个问题(它保存整个路径而不是本地目录路径和图像名称)
string s = Server.MapPath("~/Imageslogo/") + Path.GetFileName(LogoUpload.PostedFile.FileName);
LogoUpload.SaveAs(s);
F:\\projects\\accounting\\Accounting2014\\Accounting2014\\Imageslogo\\100001203240.jpeg
不是Image.ImageUrl属性的正确值,正确的值是相对路径,如~/Imageslogo/100001203240.jpeg
。
您需要保存数据库的相对路径,使用下面的代码获取相对路径
string imageLocation = string.Format("~/Imageslogo/{0}", Path.GetFileName(LogoUpload.PostedFile.FileName));
并将imageLocation
保存到CustomersTbl
表的strCLogo
列。
您将图像的路径存储为绝对路径。 这有几个原因很糟糕,主要原因是:
我建议您将相对图像路径存储在数据库中。 在这种情况下/Imageslogo/100001203240.jpeg
。 然后将图像根路径(相对路径之前的部分)存储在Web.config
文件中。 例如在appSettings
:
<appSettings>
<add key="myApp.Imageroot" value="F:\projects\accounting\Accounting2014\Accounting2014" />
</appSettings>
您可以使用以下代码获取此appSetting
值:
string myRoot = System.Configuration.ConfigurationManager.AppSettings.Get("myApp.Imageroot");
通过完整路径的这两部分,您可以:
ImageUrl
,如果你在后面的代码中设置ImageUrl
属性,那么.aspx
的ImageUrl
属性就变得毫无意义。 所以删除它:
<asp:Image ID="Image1" runat="server" width="200" Height="200"/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.