使用MVC中的$ .param从控制器返回值

时间:2013-05-14 04:30:01

标签: jquery json asp.net-mvc-3

我正在使用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
  });

它运行良好,但我需要从控制器返回幻灯片的值以更新视图中的变量。

2 个答案:

答案 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;
                                            }
                                        },

希望这有助于有同样挑战的人。