MVC3如何将FK字段从一个模型传递给另一个模型

时间:2012-03-23 23:11:52

标签: asp.net-mvc asp.net-mvc-3

我有两个型号

第一个模型

public class Company
{        
   public int Id { get; set; }
   public string CompanyName {get;set;}
   public virtual ICollection<Member> Member { get; set; }
}

第二种模式

public class Member
{
   public int Id { get; set; }
   public string Name { get; set; }
   public virtual Company Company { get; set; }
}

所以公司可以有很多会员

首先,创建公司记录,然后重定向到成员控制器,当我尝试保存成员记录时,它失败。

以下是我正在做的事情:Id是通过ActionLink传递的公司ID。我检查过的ID有一个值。当我想将Id分配给会员的company_Id(FK)

时,它会失败
    [HttpPost]
    public ActionResult Create(Member m, int id)
    {
        if (ModelState.IsValid)
        {
            **m.Company.Id = id;**
            db.Member.Add(m);
            db.SaveChanges();
            return RedirectToAction("Index");  
        }
    }

创建成员表时,它创建的字段 Id,name,Company_Id(FK)

我做错了什么?如何将companyId分配给会员的Company_Id(FK)?

由于

1 个答案:

答案 0 :(得分:0)

我认为公司是空的,这就是原因。这样做:

public class Member
{
   public int Id { get; set; }
   public string Name { get; set; }
   public int CompanyId Integer { get; set; }
   public virtual Company Company { get; set; }
}

并在你的行动中写道:

//...
m.CompanyId = id;
//...

这应该可以解决问题。如果您想了解更多信息,请查找导航属性和外键属性。