我试图在成功时将值返回给dropzone的javascript。我正在使用一个返回的Json动作,并试图建立一个URL以定向到另一个视图。我的问题是,如何将值返回给javascript函数并获取该值?

我在尝试找到值时遇到这样的错误。

Uncaught SyntaxError: Unexpected token u in JSON at position 0
at JSON.parse (<anonymous>)
at u.<anonymous> (Upload:44)
at u.n.emit (dropzone:1)
at dropzone:1


当我的代码是这样的:

                        myDropzone.on("queuecomplete",
                            function(data) {
                                this.removeAllFiles();

                                var res = JSON.parse(data);

                                var  url = "@Url.Action("OrderConfirmation","Upload", new
                                       {

                                           OrderNumber =  "45678"
                                       })";


                                window.location.replace(url);

                            });


这是我行动的回报

   return Json(new {OrderNumber = orderNumber, JsonRequestBehavior.AllowGet  });

最佳答案

AllowGet不应是返回对象的一部分,它是Json()的第二个参数。

return Json(new { OrderNumber = orderNumber }, JsonRequestBehavior.AllowGet);


编辑:对dropzone不太了解,但是我怀疑已经是一个对象,所以data可能是不必要的。无论如何,JSON.parse()data.OrderNumber应该是订单号。

您不能在javascript中使用res.OrderNumber,因为它会在命中javascript之前在服务器端执行。你需要做类似的事情

var url = '/Upload/OrderConfirmation/' + data.OrderNumber;


或者,如果您确实需要为您构建的URL,请输入一个虚拟查询字符串参数

var url = '@Url.Action("OrderConfirmation", "Upload", new { OrderNumber = XXXXX}"';


然后用@Url.Action字符串中的实际订单号替换“ XXXXX”。

07-24 09:47
查看更多