2012-05-10 43 views
1

我有一個.NET中的webmethod返回對象列表。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() 

,但警告仍說「男」

在此先感謝您的幫助!

+0

我很想知道它是否會起作用,如果您要將值分配給標籤而不是提醒它;儘管如此,我的錢說它仍然會產生同樣的結果。你也可以嘗試一種冒險的方法:'var foo = result.d [i] [「CourseNum」] +'';' – Jeremy

+0

你是對的 - 它確實產生了相同的結果。 – Jagd

回答

1

嘗試轉義星號。 JavaScript認爲你很可能正在成倍增長。正如你恰如其分地說,一些(Javascript)對於自己的好處太聰明瞭。

+0

這是做到了。謝謝您的幫助! :) – Jagd

+0

很高興我能幫到你。 – Jeremy