集合中嵌套型不被MVC 3(总是为空)绑定(Collection Nested within Mod

2019-10-17 11:20发布

我有一个表示关于ASP.NET MVC 3和Entity Framework 5.0一所大学的各种信息的模型。 该模型具有另一种模式,称为TrendModel的ICollection的。 这个系列似乎永远不会被存储/ MVC通过约束在任何时候,不管我做什么。

当我手动设置此集合在运行时(这是从数据库中检索后)的东西,收集当然是不再为空,但无论我似乎将它设置为,然后存储在数据库中,趋势总是空当我从数据库中检索。

UniversityModel:

public class UniversityModel
{
    [Key]
    public string univ_id { get; set; }

    public string ipeds_id { get; set; }
    public string name { get; set; }
    public bool religious { get; set; }

    #region Location Information

    public string city { get; set; }
    public string state { get; set; }
    public string urbanization { get; set; }
    public double latitude { get; set; }
    public double longitude { get; set; }

    #endregion

    public ICollection<TrendModel> trends { get; set; }
}

TrendModel:

public class TrendModel
{
    [Key]
    public string id { get; set; }
    public ushort year { get; set; }
    public uint? capacity { get; set; }
    public uint? rate { get; set; }
    public uint? meals { get; set; }
    public bool? forProfit { get; set; }
    public bool? control { get; set; }
    public string degree { get; set; }
    public bool? landgrant { get; set; }
    public bool? athletic { get; set; }
    public string calendar { get; set; }
    public bool? required { get; set; }
}

不知道这是否是相关的,但如果我把在UniversityModel一个构造函数,将趋势空单,那么趋势就是不再为空和空列表。

这是一个模型绑定问题,或一个职位的问题还是什么? 很抱歉,如果我完全关闭基地,我很新的MVC和ASP.NET。

Answer 1:

您还没有在您的趋势model.try添加外键univ_idTrendModel类。

public class TrendModel
{
    [Key]
    public string id { get; set; }
    .
    .
    .
    [ForeignKey("univ_id")]
    public string univ_id   {get;set;}
}


Answer 2:

当它转出,这个问题是由我简单地固定在执行趋势延迟加载,所以属性现在读:

public virtual ICollection<TrendModel> trends { get; set; }


文章来源: Collection Nested within Model is Not Bound by MVC 3 (Always null)