2012-03-07 39 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