我在.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'
提前感谢您的帮助!!
答案 0 :(得分:1)
尝试转义星号。很可能Javascript认为你正在成倍增长。正如你恰当地提到的那样,某些东西(Javascript)太聪明了。