[英]How to display image in asp.net mvc3
我已经在其中开发了一个asp.mvc3 Web应用程序,将图像名称和一些文本保存到数据库中。当我尝试从数据库中获取图像时,它不显示图像。实际上在我的本地计算机上,一切正常但是,当我在服务器中测试无法正常工作时,请帮助我。
<% for (int v = 0; v < Listdata.Count; v++)
{ %>
<%if (j == 1)
{ %>
<%if (count < Listdata.Count)
{ %>
<tr>
<%string Imageurl = Listdata[count].ToString();%>
<%string[] GetImages = Imageurl.Split(','); %>
<%string imagedata = GetImages[1].ToString(); %>
<% Getimage1 = imagedata.Substring(9, imagedata.Length - 10); %>
<li class="menu"><a href='<%=Html.Encode(Geturl) %>'>
<img src='/Images/<%=Html.Encode(Getimage1)%>' alt="" style="margin-top: 0px; width: auto;
height: 200px;" /></a></li>
<%} %>
<td>
<li class="menu"><span style="float: left; margin-left: 5px;">
<%=Html.Encode(Postdate)%></span><br />
<a href="DisplayData/<%=Html.Encode(item.postid) %>"><span class="name">
<%=Html.Encode(item.post)%></span><span class="arrow"></span></a></li>
<%j++; i = 2; count++; %>
<%}
}
} %>
<%} %>
</td>
您可以设置一个控制器操作来提供图像:
public ActionResult MyImage()
{
byte[] image = ... go and fetch from DB
return File(image, "image/png");
}
在您看来,只需引用此操作即可:
<img src="<%= Url.Action("MyImage", "SomeController") %>" alt="my image" />
请注意,如何使用Url.Action
帮助程序构建图像的url,而不是对其进行硬编码,这将确保无论在哪里托管应用程序,此代码都可以工作。
在您的代码中,您已经对URL进行了硬编码,这当然是行不通的,因为在部署应用程序时,是因为IIS中需要使用虚拟目录的名称:
<img src='/Images/<%=Html.Encode(Getimage1)%>' alt="" />
因此,在处理url时始终使用URL帮助器:
<img src="<%= Url.Action("Getimage1", "Images") %>" alt="" />
只需在img
元素中使用图像的路径即可:
<img src="path to image" />
这是您的控制器。
public ActionResult LoadImg(int id)
{
byte[] image = null;
tblImage img = en.tblImages.FirstOrDefault(i => i.ImgId == id);
image = (byte[])img.ImgSrc;
return File(image, "image/png");
}
这是你的看法
<div id="imagebox1" align="center">
<img height="80" width="140" class="imgThumb" src="@Url.Action("LoadImg", "Image", new { id = m.ImgId })" alt="Loading..." />
</div>
希望这可以帮助...
使用图像服务器路径。 就像www.xyz.com/images.abc.png一样,您应该提供这样的图像路径,以便它将来自服务器的图像路径
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.