javascript - RAZOR Javascript 编码帮助

标签 javascript asp.net-mvc razor

我有以下 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/

相关文章:

javascript - 使用 Chrome 内容脚本添加复杂的 HTML

c# - 我应该始终在 N 层 MVC 应用程序中使用 AsNoTracking 吗?

unit-testing - 我们可以涵盖哪些方面 单元测试 ASP.NET MVC View

javascript - 检查至少一个复选框已选中 jquery Validate

asp.net-mvc - ASP.NET MVC Razor : conditional attribute in HTML

Javascript ReactJs 类型错误

javascript - 当我从 Controller 更改它时,Angular ng-style 不会自动应用更改

javascript - 如何让我的 content2 边框进入 content1 边框半径内以及如何在 content2 元素之间放置一条垂直线?

asp.net - 使用 ASP.NET MVC 6 在 Web.config 中设置 IIS 设置

asp.net-mvc - ASP.NET MVC 加 Silverlight