【问题标题】:mouse position ajax - asp.net MVC鼠标位置ajax - asp.net MVC
【发布时间】:2013-05-01 07:07:13
【问题描述】:

我正在使用以下命令将鼠标向下位置发送到控制器中的两个操作,第一个即时制作图像,第二个将图像发送到查看器:

   $("#container2").bind('mousemove', function (e) {
                                currentX = e.pageX;
                                currentY = e.pageY;
                                diffX = (currentX - startX);
                                diffY = (currentY - startY);
                                $.ajax({
                                    url: '/Home/Scale3D',
                                    type: 'POST',
                                    data: {
                                        pX: diffX,
                                        pY: diffY,
                                        pZ: diffX * sThickness,
                                        udm: ++udm
                                    }
                                }).done(function (d) {
                                    image.src = '/Home/Rotate3DImage?udm=' + (++udm);
                               });
                            });

这是第一个动作:

 public ActionResult Scale3D(float pX = 0, float pY = 0, float pZ = 0, int inc = 0)
        {
            DicomImage3D im = null;
           ......
            return Json(new { success = true, inc = inc }, JsonRequestBehavior.AllowGet);
        }

第二步:

public ActionResult Rotate3DImage(int udm = 0)
    {
        FileContentResult data;
        ........
        using (var memStream = new MemoryStream())
        {
            objImage.Save(memStream, ImageFormat.Png);
            data = this.File(memStream.GetBuffer(), "image/png");
        }
        return data;
    }

问题是有延迟,有些图片没有显示;在第一个动作处理完所有第一个 ajax 命令之前,第二个动作不会执行。有没有办法在收到成功时执行第二个动作。非常感谢您的建议,在此先感谢。

【问题讨论】:

    标签: asp.net-mvc json serialization


    【解决方案1】:
    $("#container2").bind('mousemove', function (e) {
                                    currentX = e.pageX;
                                    currentY = e.pageY;
                                    diffX = (currentX - startX);
                                    diffY = (currentY - startY);
                                    $.ajax({
                                        url: '/Home/Scale3D',
                                        type: 'POST',
                                        data: {
                                            pX: diffX,
                                            pY: diffY,
                                            pZ: diffX * sThickness,
                                            udm: ++udm
                                        },
                                        success: {
                                         // code here
                                         image.src = '/Home/Rotate3DImage?udm=' + (++udm);
                                        }
                                    });
                                });
    

    【讨论】:

    • 谢谢。我将 .done(function (d) { 更改为成功。还有延迟。
    猜你喜欢
    • 2014-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多