2012-03-07 41 views
0

如果我在我MVC3應用這樣的模式:如何從mvc3模型的序列化json中獲取backbone.js模型?

public class Person 
{ 
    public Guid Id { get; set; } 
    public Name Name { get; set; } 
    public Address Address { get; set; } 
    public PhoneNumber PhoneNumber { get; set; } 
} 

public class Name 
{ 
    public string First { get; set; } 
    public string Last { get; set; } 
} 

public class Address 
{ 
    public string AddressLine { get; set; } 
    public string City { get; set; } 
    public string State { get; set; } 
    public string Zip { get; set; } 
} 

會怎麼做我.fetch()從Backbone.js的填充呢?

這是我的嘗試:

class Person extends Backbone.Model 

$ -> 
    person = new Person() 
    person.fetch() 

    // person.get for things like Name.First, or Name, or First 
    // all return undefined 
    alert person.get(...) // ? 

我有適當的JsonResult動作方法和控制,並與小提琴手的fetch()調用正確返回JSON數據驗證。 (我可以明天早上從辦公室發佈)

我真的是Backbone的新手,我做錯了什麼?

+0

如果您將這些屬性非規範化爲類的字符串表示,會發生什麼情況?例如'public name name {get;組; }'變成'公共字符串FullName {get;組; }' – Eli 2012-03-07 01:17:29

回答

3

夫婦的事情:1)fetch是異步的。試試這個:

person.fetch({ 
    success: function() { 
     alert(person.get('Name') 
    } 
}); 

2)這將顯示name屬性是一個對象(但不是主幹模型):

{ 
    Name: "Joe" 
    etc... 

} 

您可能需要使用Backbone.Relational或類似的東西,如果你想名稱成爲骨幹模型。或者你可以重寫parse來平展你的json。

+0

我沒有注意到fetch是異步的,非常感謝你! – asawyer 2012-03-07 13:41:36