我正在使用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
});
它运行良好,但我需要从控制器返回幻灯片的值以更新视图中的变量。
答案 0 :(得分:0)
ViewBag在这些情况下非常有用。此动态变量可用于存储来自控制器的数据,然后在视图中使用。
在控制器中,您可以设置
ViewBag.Slide = slide
在视图中,您可以使用此数据执行所需操作
@ViewBag.Slide
答案 1 :(得分:0)
我找到了这篇文章; 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;
}
},
希望这有助于有同样挑战的人。