我有以下 JS 代码,用于创建对象:
var TransactionData = {
orderId: '@Model.Order.SalesOrderNumber.SelfOrDefault().FullOrderNuber',
curreny: "USD",
total: '@Model.Order.TotalSalesPrice',
items: [
{
@foreach (var item in Model.Order.LineItems)
{
sku: item.ProductId,
quantity: item.Quantity,
price: item.AdjustedUnitPrice
}
}]
}
我需要循环访问模型中的 LineItems 以获取 sku、数量和价格。有 1 到 x 项需要创建。使用上面的代码,我在 sku:、数量:和价格:行中的逗号后面收到错误“;预期”。最终我试图在项目中获得以下内容:
{
"price" : "140",
"quantity" : "1",
"sku" : "156278"
},
{
"price" : "12.69",
"quantity" : "3",
"sku" : "908736"
}
我想我已经快到了,我只需要修复这个错误。有什么建议么?我对 RAZOR 上的 JS 很生疏,所以请耐心等待。
谢谢。
最佳答案
这完全被解释为服务器端代码:
@foreach (var item in Model.Order.LineItems)
{
sku: item.ProductId,
quantity: item.Quantity,
price: item.AdjustedUnitPrice
}
这当然是一个语法错误,因为这三行不是有效的 C#。相反,您希望将它们视为客户端代码,并将一些服务器端值发送到输出。像这样的事情:
@foreach (var item in Model.Order.LineItems)
{
<text>
{
sku: @item.ProductId,
quantity: @item.Quantity,
price: @item.AdjustedUnitPrice
},
</text>
}
尽管如此,您在 Razor 代码中构建 JavaScript 结构所投入的手动精力越多,您就越开始证明仅仅序列化结构是合理的。 This question是一个很好的起点。当然,您可以使用任何您喜欢的序列化器。
关于javascript - RAZOR Javascript 编码帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46670585/