1

我在.NET 中有一个返回对象列表的网络方法。

[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 和警报之间的某个地方,有些东西试图过于聪明,并认为 CourseNum 是一个数字字段(也许是整数),而实际上它只是一个字符串。

我也试过

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

但警报仍然显示“NaN”

在此先感谢您的帮助!!

4

1 回答 1

1

尝试转义星号。Javascript 很可能认为您正在成倍增加。正如你所说的那样,某些东西(Javascript)太聪明了。

于 2012-05-10T18:28:34.610 回答