MVC 5 - 字符串图像src的部分回发

时间:2015-01-27 10:55:13

标签: c# asp.net-mvc asp.net-mvc-5

我想要实现的是通过部分回发我试图检索字符串图像。这是因为我的页面包含近100个图像,并且页面的大小很大,因此我希望部分回发以检索mvc中的图像scr - 5.函数在控制器中被调用但是图像未加载到页。我想在视图中像这样检索

  @{
       var PhotoGallary = (List<DisasterManagementDataAccess.Model.utblCMSPhoto>)ViewData["PhotoGallery"];
   }    
    @foreach (var item in PhotoGallary)
    {
      <div>
        <a href="#">
          <img id="@item.PhotoID" class="width100 marginlt15 fllt padding2 PhotoGallaryThumbnail" src="@Url.Action("GetPhoto", "Home", new { item.PhotoID })" alt="@item.PhotoTitle" title="@item.PhotoTitle" />
        </a>
      </div>
    }

在HomeController中我喜欢这个,它将以字符串格式检索存储在数据库中的Image(SQL R2 Management Studio)

   public ActionResult GetPhoto(long PhotoID)
    {
        string filedata = "";
        string mimetype = null;
        objCMSPhoto = new CMSPhoto();
        var model = objCMSPhoto.utblCMSPhotos.Where(x => x.PhotoID == PhotoID);
        foreach (var item in model)
        {
            if (item.NormalImage.Length > 0)
            {
                filedata = item.NormalImage;
            }
            break;
        }
        return  Content(filedata);
   }

我参考了this问题。我也尝试返回字符串,但结果是一样的。当我在filedata中调试时,我得到了这种字符串:

   data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBXgFeAAD/4bWKRXhpZgAATU0AKgAAAAgADQEOAAIAAAAgAAAAqgEPAAIAAAAFAAAAygEQAAIAAAALAAAA0AESAAMAAAABAAEAAAEaAAUAAAABAAAA3AEbAAUAAAABAAAA5AEoAAMAAAABAAIAAAExAAIAAAARAAAA7AEyAAIAAAAUAAAA/gITAAMAAAABAAIAAIdpAAQAAAABAAABEogl............

我需要做什么?

1 个答案:

答案 0 :(得分:0)

您使用的是错误的助手。

Url.Action创建一个指向您使用参数描述的Action的超链接,以便您使用下面的img标记(或类似标记)结束:

<img src="Home/GetPhoto/123123" />

如果您的Action返回可行的实际二进制文件。

但是你的Action实际上返回src属性本身,所以你应该使用Html.Action,它将执行操作并将其结果打印为HTML字符串:

<img id="@item.PhotoID" class="width100 marginlt15 fllt padding2 PhotoGallaryThumbnail" src="@Html.Action("GetPhoto", "Home", new { item.PhotoID })" alt="@item.PhotoTitle" title="@item.PhotoTitle" />

它会生成img标记,如:

<img src=" data:image/jpeg;base64,/9j/4AAQSkZJRgABA..." />