尝试将 return 值设置为 javascript 时出错
Getting error when trying to return value to javascript
我正在尝试 return 一个成功返回到 dropzone 的 javascript 的值。我正在使用 return Json 操作并尝试构建 url 以指向另一个视图。我的问题是,如何将 return 值返回给 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行操作
return Json(new {OrderNumber = orderNumber, JsonRequestBehavior.AllowGet });
AllowGet
不应该是返回对象的一部分,它是 Json()
.
的第二个参数
return Json(new { OrderNumber = orderNumber }, JsonRequestBehavior.AllowGet);
编辑:不太了解 dropzone,但我怀疑 data
已经是一个对象,因此 JSON.parse()
可能是不必要的。无论如何,data.OrderNumber
或res.OrderNumber
应该是订单号。
您不能在 javascript 中使用 @Url.Action
,因为它会在 javascript 被命中之前在服务器端执行。你需要做类似
的事情
var url = '/Upload/OrderConfirmation/' + data.OrderNumber;
或者如果您确实需要为您构建的 URL,请放入一个虚拟查询字符串参数
var url = '@Url.Action("OrderConfirmation", "Upload", new { OrderNumber = XXXXX}"';
然后用 url
字符串中的真实订单号替换 "XXXXX"。
我正在尝试 return 一个成功返回到 dropzone 的 javascript 的值。我正在使用 return Json 操作并尝试构建 url 以指向另一个视图。我的问题是,如何将 return 值返回给 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行操作
return Json(new {OrderNumber = orderNumber, JsonRequestBehavior.AllowGet });
AllowGet
不应该是返回对象的一部分,它是 Json()
.
return Json(new { OrderNumber = orderNumber }, JsonRequestBehavior.AllowGet);
编辑:不太了解 dropzone,但我怀疑 data
已经是一个对象,因此 JSON.parse()
可能是不必要的。无论如何,data.OrderNumber
或res.OrderNumber
应该是订单号。
您不能在 javascript 中使用 @Url.Action
,因为它会在 javascript 被命中之前在服务器端执行。你需要做类似
var url = '/Upload/OrderConfirmation/' + data.OrderNumber;
或者如果您确实需要为您构建的 URL,请放入一个虚拟查询字符串参数
var url = '@Url.Action("OrderConfirmation", "Upload", new { OrderNumber = XXXXX}"';
然后用 url
字符串中的真实订单号替换 "XXXXX"。