【问题标题】:Implement one-to-many relationship in ASP.NET MVC 5在 ASP.NET MVC 5 中实现一对多关系
【发布时间】:2015-12-08 09:44:00
【问题描述】:

这是我的项目模型:

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 之间存在一对多的关系。在

我的域/项目/详细信息/项目 ID

查看,我想放一个按钮,当单击此按钮时,用户可以为该项目创建一个新的提案。我的问题是如何将项目的信息传递给投标?如果你能给我一些建议,我会很高兴的。谢谢。

【问题讨论】:

  • 你的意思是如何获取项目实体?当一个按钮重定向到另一个页面时
  • 是的,当用户点击按钮时,用户将进入mydomain/Proposal/Create,我想获取项目的projectID。

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


【解决方案1】:

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

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

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

现在在您看来,您将能够执行以下操作:

Model.Proposal.propertyName

Model.Project.propertyName

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

【讨论】:

    【解决方案2】:

    您说当用户单击按钮时用户转到另一个页面。您可以将 projectID 发送到该页面。这样您就可以获得该 projectID。

    【讨论】:

    • 你能用一个简单的例子解释一下吗?
    • 你可以这样发送 mydomain/Proposal/Create?projectId={projectId}
    • 那么我应该如何在创建页面中检索projectId?谢谢
    • public ActionResult Create(int projectId=0){} new actiontion 自动获取 projectId,如果不传递任何内容,则 projectId 将获取 0
    猜你喜欢
    • 1970-01-01
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    • 2015-09-12
    • 2020-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多