我试图在成功时将值返回给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”。