2012-09-17 200 views
-1

我在Win API控制器中使用以下代碼來返回包含Menu對象和CourseOption對象列表的對象。無法訪問JSON元素

public object GetCourseOption(int id) //Here id is Menu id 
{ 
    IEnumerable<CourseOption> courseoptions = db.CourseOptions.Where(c => c.MenuId == id); 
    Menu menu = db.Menus.Single(c => c.Id == id); 
    if (courseoptions == null) 
    { 
     throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound)); 
    } 

    var combine = new { Menu = menu, Options = courseoptions }; 
    return combine; 
} 

我可以通過使用下面的代碼在JavaScript

$.getJSON("/api/CourseOptionAPI/" + id, function (data) { 
alert("In " + data.Menu.Name); 
}); 

但無法通過下面的代碼

alert("In " + data.Options[0].Name); 

控制器的方法來訪問CourseOption屬性訪問菜單的屬性正在恢復選項作爲「組合」對象的一部分(我通過使用斷點來檢查它)。 'Menu'和'CourseOption'是對象,'Name'是它們的屬性之一(在它們兩個中)都是string類型的屬性之一。

+1

'console.log(data);' – zerkms

+0

如何將數據從asp傳遞給JavaScript?請給出您構建的JSON字符串的完整示例。 – LeJared

回答

0

Name可能是屬性之一,但它看起來像c.MenuId == id一直失敗,你永遠不會迴應任何有用的數據和數據.Options [0]將是未定義的。

就像@zerkms說的,console.log你的傳入數據,並檢查收到的JSON是什麼。

+0

明白了。我必須在JavaScript中以「alert(」In「+ data.Menu.CourseOptions [0] .Name);'的形式訪問它。 console.log幫助。謝謝。 – Saurabh