asp.net mvc中的Javascript Serializer会生成格式错误的Json

时间:2012-12-22 12:18:55

标签: jquery json asp.net-mvc-3 javascriptserializer

我用剃须刀在asp.net mvc 3中。该模型的类型为IList<PipeLineView>PipeLineView的定义是

public class PipeLineView
    {
        public string Stage { get; set; }
        public decimal Amount { get; set; }
        public string Color { get; set; }
        public int Count { get; set; }
        public int LevelNo { get; set; }
    }

在视图中我正在做类似

的事情
JavaScriptSerializer serializer = new JavaScriptSerializer();
    var data = serializer.Serialize(Model);

并在我有的JavaScript中

<script type="text/javascript">
 var data =JSON.parse(@Html.Raw(data));
</script>

当我在firefox中加载页面时,我收到以下js错误

SyntaxError: JSON.parse: unexpected character
[Break On This Error]   

...":5,"LevelNo":1},{"Stage":"Level2","Amount":0.000,"Color":"Red","Count":0,"Level...

这可能是什么问题? 感谢

1 个答案:

答案 0 :(得分:2)

JSON.parse需要一个JSON字符串,因此您需要对该参数进行字符串引用,以便在''周围添加@Html.Raw(data)

<script type="text/javascript">
   var data = JSON.parse('@Html.Raw(data)');
</script>

但在你的情况下你不需要解析你可以写:

<script type="text/javascript">
   var data = @Html.Raw(data);
</script>