在ASP.NET MVC 5中实现一对多关系

时间:2015-12-08 09:44:00

标签: asp.net asp.net-mvc entity-framework asp.net-mvc-5 ef-code-first

这是我的项目模型:

public class Project
{
    public int ProjectID { get; set; }
    public string ProjectTitle { get; set; }
    public string ProjectDetails { get; set; }

    public virtual ICollection<Proposal> Proposals{ get; set; }

}

这是我的提案模型:

public class Proposal
{
    public int ProposalID { get; set; }
    public string BidTitle { get; set; }
    public string BidDetails { get; set; }

    public virtual Project Project { get; set; }
}

如您所见,Project和Proposal之间存在一对多的关系。在

  

MYDOMAIN /项目/详情/专案编号

查看,我想放一个按钮,当点击这个按钮时,用户可以为该项目创建一个新的Proposal。我的问题是如何将该项目的信息传递给出价?如果你能给我一些提示,我真的很高兴。感谢。

2 个答案:

答案 0 :(得分:1)

创建一个名为viewmodel的模型,其中包含您要在同一视图下使用的模型。你会看起来像这样:

public class ProposalAndProjectModel
    {              
        public Proposal Proposal { get; set; }
        public Project Project{ get; set; }    
    }

将其保存为ProposalAndProjectModel.cs,然后在您的视图中引用此模型。

现在在您的视图中,您将能够执行以下操作:

Model.Proposal.propertyName

Model.Project.propertyName

这可以帮助您获取创建新对象的正确参数。

答案 1 :(得分:0)

您说当用户点击按钮用户转到另一页时。您可以将projectID作为到达该页面的内容。多数民众赞成如何获得该项目ID。