1

我在 MVC3 中有 2 个包含 POCO 实体的类

public class TeamMember 
{
  public DateTime JoinDate { get; set; }
  [Required]
  Public string Name{ get; set; }
} 

public class Project
{
   [Required]
   public string Name { get; set; }  
   public DateTime StartDate { get; set; }
}

我想JoinDate用 Project设置 TeamMember 的默认值StartDate。谁能把我拉出来

4

3 回答 3

1

您可以在控制器中执行此操作,例如:

if(teamMember.JoinDate == null)
{
    teamMember.JoinDate = project.StartDate;
}

如果project.StartDate == nullthen ,您可以添加更多逻辑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; }
    }
于 2012-08-10T09:46:54.333 回答
0

我已将 [DefaultValue()] 用于 bool、int、string 数据类型。试试 DateTime,我不确定,但只是给你解决方法。

于 2012-10-08T11:46:36.860 回答
0

听起来您需要 TeamMember 类的自定义模型绑定器。这当然假设您在创建 TeamMember 时可以访问 project.StartDate。

于 2012-08-10T09:48:34.627 回答