我有一个模型,它代表ASP.NET MVC 3和Entity Framework 5.0中有关大学的各种信息。该模型具有另一个模型的ICollection,称为TrendModel。无论我做什么,这个集合似乎永远不会被MVC存储/绑定。
当我在运行时手动设置此集合(在从数据库中检索之后)时,该集合当然不再为null,但无论我将其设置为然后存储在数据库中,趋势是当我从数据库中检索它时,它总是为空。
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很新。
答案 0 :(得分:0)
您尚未在趋势模型中添加外键。在univ_id
课程中添加TrendModel
。
public class TrendModel
{
[Key]
public string id { get; set; }
.
.
.
[ForeignKey("univ_id")]
public string univ_id {get;set;}
}
答案 1 :(得分:0)
事实证明,我只是通过对趋势执行延迟加载来解决问题,因此该属性现在显示为:
public virtual ICollection<TrendModel> trends { get; set; }