无效的属性ID错误 - 来自List<>的JSON对象c#ASP.NET

时间:2012-09-03 13:44:40

标签: c# javascript asp.net json razor

我已经在这几天了,并且无处可去。

我正在尝试将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...}]

所以我想知道如何摆脱&amp; quot并用所需的“替换它们”。 它与我的Item类或我的javascript有关吗?

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

2 个答案:

答案 0 :(得分:5)

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

var items = @Html.Raw(@jsonList);

答案 1 :(得分:1)

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

How do I write unencoded Json to my View using Razor?

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