我想要实现的是通过部分回发我试图检索字符串图像。这是因为我的页面包含近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............
我需要做什么?
答案 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..." />