0

私は 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
  });

うまく機能しますが、コントローラーからスライドの値を取得して、ビュー内の変数を更新する必要があります。

4

2 に答える 2

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

これが同じ課題を抱えている人に役立つことを願っています。

于 2013-05-14T19:22:08.903 に答える
0

ViewBag は、このような状況で非常に役立ちます。この動的変数を使用して、コントローラーからのデータを格納し、ビューで使用できます。

コントローラーで設定できる

ViewBag.Slide = slide

ビューでは、このデータで必要なことを行うことができます

@ViewBag.Slide
于 2013-05-14T04:39:46.437 に答える