您可以在控制器中执行此操作,例如:
if(teamMember.JoinDate == null)
{
teamMember.JoinDate = project.StartDate;
}
如果project.StartDate == null
then ,您可以添加更多逻辑project.StartDate = DateTime.Now
。
不过,我不确定您是否可以将其作为模型本身的默认设置。
更新
正如你所拥有的,我认为他们Project StartDate
看不到TeamMember JoinDate
,我认为你需要给他们一个一对一的关系。我不确定确切的语法,因为我不在我的工作系统上,但是这样的东西应该可以工作:
public class TeamMember
{
public DateTime JoinDate
{
get { return this.JoinDate; }
set { JoinDate = this.Project.StartDate; }
}
[Required]
public string Name{ get; set; }
public virtual Project Project { get; set; }
}
public class Project
{
[Required]
public string Name { get; set; }
public DateTime StartDate { get; set; }
}
更新 2
想一想,你需要让 JoinDate 为空,否则它会抛出一个验证错误,然后你需要检查它是否有一个值。更像这样的东西:
public class TeamMember
{
public DateTime? JoinDate
{
get { return this.JoinDate; }
set
{
if(JoinDate == null)
{
JoinDate = this.Project.StartDate;
}
else
{
JoinDate = JoinDate;
}
}
}
[Required]
public string Name{ get; set; }
public virtual Project Project { get; set; }
}