如何在asp.net mvc3中显示图像

Vic*_*ti. 1 c# asp.net-mvc-3

我已经开发了一个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>
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 6

您可以设置一个控制器动作来提供图像:

public ActionResult MyImage()
{
    byte[] image = ... go and fetch from DB
    return File(image, "image/png");
}
Run Code Online (Sandbox Code Playgroud)

在您的视图中,只需引用此操作:

<img src="<%= Url.Action("MyImage", "SomeController") %>" alt="my image" />
Run Code Online (Sandbox Code Playgroud)

请注意如何使用Url.Action帮助程序构建映像的URL 而不是硬编码,这将确保无论托管应用程序的位置如何,此代码都可以正常工作.

在您的代码中,您已经硬编码了当然无法正常工作的URL,因为在部署应用程序时,因为IIS中需要使用虚拟目录的名称:

<img src='/Images/<%=Html.Encode(Getimage1)%>' alt="" />
Run Code Online (Sandbox Code Playgroud)

所以在处理url时总是使用URL助手:

<img src="<%= Url.Action("Getimage1", "Images") %>" alt="" />
Run Code Online (Sandbox Code Playgroud)