Web方法和复杂的对象类型问题

时间:2012-05-10 17:46:35

标签: javascript jquery asp.net webmethod

我在.NET中有一个webmethod,它返回一个对象列表。

[System.Web.Services.WebMethod(enableSession: true)] 
public static List<CourseItem> GetItems() { 
    return (new MTE()).GetItems(); 
}

CourseItem对象如下:

public static CourseItem {
    public string CourseNum { get; set; }
    public string Desc { get; set; }
}

我从javascript中使用webmethod就像这样:

function GetCourses_Success(result) {
    // Problem starts here
    if (result.d != null) {
        for (i = 0; i < result.d.length; i++) {
            alert(result.d[i]["CourseNum"]);
}

问题: 警报有时会说'NaN'而不是实际的课程编号。问题与大多数课程编号只是数字这一事实有关,但偶尔的课程编号是一个带有星号的数字(例如--111234 *或999234 *)。因此,在webmethod和alert之间的某个地方,有些东西试图为了自己的利益而过于聪明,并且认为CourseNum是一个数字字段(也许是整数),而实际上它只是一个字符串。

我也试过

result.d[i]["CourseNum"].toString() 

但警报仍然显示'NaN'

提前感谢您的帮助!!

1 个答案:

答案 0 :(得分:1)

尝试转义星号。很可能Javascript认为你正在成倍增长。正如你恰当地提到的那样,某些东西(Javascript)太聪明了。