我使用asp.net MVC,在应用程序中,我使用以下方式更新图像:
控制器:
public ActionResult OutputHandler(int slide = 0)
{
FileContentResult data;
im = object(slide) ......
using (var memStream = new MemoryStream())
{
objImage1.Save(memStream, ImageFormat.Png);
data = this.File(memStream.GetBuffer(), "image/png");
}
objImage1.Dispose();
return data;
}
我使用的视图
imge.src = '/Home/Animate?' + $.param({
....
slide: parseInt(intervalCounter),
mprType: 0,
udm: ++udm
});
它工作得很好,但是我需要从控制器中获取slide的值来更新视图中的变量。
ViewBag在这些情况下非常有用。这个动态变量可以用来存储来自控制器的数据,然后在视图中使用。
在控制器中可以设置
ViewBag.Slide = slide
,在视图中,你可以对这些数据做你需要做的事情
@ViewBag.Slide
我找到了这篇文章;http://www.codeproject.com/Articles/201767/Load-Base64-Images-using-jQuery-and-MVC。
将控制器更改为:
MemoryStream memStream = new MemoryStream();
objImage.Save(memStream, ImageFormat.Png);
var image = Convert.ToBase64String(memStream.ToArray());
objImage.Dispose();
return Json(new { success = true, base64imgage = image, slide = slide}, JsonRequestBehavior.AllowGet);
在视图中:
$.ajax({
url: '/Home/test',
type: 'POST',
data: {
.....
},
success: function(data) {
if (data.udm) {
image.src = "data:image/jpg;base64,"+ data.base64imgage + udm;
}
},