1

我已经在这个问题上待了几天,但一无所获。

我正在尝试将 List 对象序列化为 JSON,以便可以将其传递给 Google Analytics 的电子商务服务,因此需要事先将其传递给 javascript。

但是,json 输出存在错误。

首先,我有一个 Item 类。

Item {
    Id,
    Name,
    Sku,
    Price,
    Quantity
}

我的购物车类包含一个项目列表

public List<Item> Items;

我正在使用以下内容来序列化列表。

var jsonList = JavascriptSerializer.Serialize(cart.Items);

然后使用 Razor 将 jsonList 传递给 javascript,如下所示 -

<script type="text/javascript">
    var items = @jsonList;
</script>

在浏览器中生成的结果如下所示:

items = [{&quot;Id&quot;:ITEM_ID,&quot;Name&quot;:&quot;ITEM_NAME&quot;,&quot;Sku&quot;:&quot;ITEM_SKU&quot;,&quot;Quantity&quot;:ITEM_QTY,&quot;Price&quot;:ITEM_PRICE},{&quot;Id&quot;:ITEM2_ID,&quot;Name&quot;:&quot;ITEM2_NAME&quot;,etc...}]

所以我想知道如何摆脱 " 并用所需的 " 代替它们。它与我的 Item 类或我的javascript有关吗?

我已经尝试过 @Html.Raw(items) 并且没有运气 - 返回一个空的 json 对象。

4

2 回答 2

5

您可以使用Html.Raw返回未编码的 HTML

var items = @Html.Raw(@jsonList);
于 2012-09-03T13:47:12.120 回答
1

找到了适用于以下帖子的解决方案。

如何使用 Razor 将未编码的 Json 写入我的视图?

感谢@James 提到未编码的 HTML——这让我走上了正确的道路。

于 2012-09-05T00:09:56.103 回答