在IE 8上使用Page Method调用的Json问题

时间:2010-05-03 10:56:27

标签: asp.net javascript internet-explorer asp.net-ajax

我有以下代码,通过 Page Method 使用来自ajax调用的值填充select元素。在FF中,代码完美运行,在IE8中我得到错误: 'ResourceList [...]。id'为null或不是对象 。我在这里可以看到什么?

    function readShift(jsonString) {
        var shiftInfo = Sys.Serialization.JavaScriptSerializer.deserialize(jsonString);
        var listItems = "";

        listItems += "<option value='0'>[Unassigned]</option>";
        for (var i = 0; i < shiftInfo.ResourceList.length; i++) {
            listItems += "<option value='" + shiftInfo.ResourceList[i].id + "'>" + shiftInfo.ResourceList[i].name + "</option>";
        }
        $("#" + resourceListId).html(listItems);
     };

1 个答案:

答案 0 :(得分:1)

我在JSON中的ResourceList数组之后跟踪这是一个额外的逗号。 FF处理它,IE没有。我用

修剪我的逗号
jsonReply.Remove(jsonReply.Length - 1, 1);

但是只修剪了最后一个\n,因为我使用的是StringBuilder.AppendLine()。将代码更改为

jsonReply.Remove(jsonReply.Length - 3, 3);

很好地解决了这个问题。