gpt4 book ai didi

c# - MVC 两个 Controller 一个 View

转载 作者:太空宇宙 更新时间:2023-11-03 23:26:33 25 4
gpt4 key购买 nike

我正在尝试在现有 Controller 中创建一个详细 View ,该 Controller 连接两个 Controller 并传递到 View 中,但到目前为止我尝试的所有操作都没有奏效。我有 4 个数据模型,我想使用其中的 2 个 Company 和 Staff。因此,当我选择特定公司的详细信息时,它将在同一 View 中返回与该公司关联的所有员工。

HRDataModel 类

  public partial class HRDataModel : DbContext
{
public HRDataModel()
: base("name=HRDataModel")
{
}
public virtual DbSet<Company> Companies{ get; set; }
public virtual DbSet<Attribs> Attribs{ get; set; }
public virtual DbSet<Staff> Staffs { get; set; }
....

公司数据模型

[Table("Company")]
public partial class Company
{
public Company()
{
Staffs = new HashSet<Staff>();
}
public virtual ICollection<Staff> Staffs { get; set; }
public int companyId{ get; set; }

[Required]
[StringLength(10)]
public string companyName{ get; set; }
.....

员工数据模型

public partial class Staff
{
public Staff()
{
Skills = new HashSet<Skill>();
}
public virtual Company Company{ get; set; }

public virtual ICollection<Skill> Skills { get; set; }

public int staffId { get; set; }
.........

我正在尝试在 CompanyController 中获取我的 Details 方法,以显示数据库中所有活跃公司的详细信息以及附属于该公司的所有员工

[Route("Company/Staff/1}")]
public ActionResult Details(int id)
{
Company co = db.Companies.Find(id);
...How to implement????
return View(bu);
}

如果有人能给我指出正确的方向,那就太好了。我试了又试,但还是无法正常工作?

最佳答案

由于 Company 包括 Staff,您可以使用 include 方法来包括相关实体。

var company = db.Companies.Include(c => c.Staffs).FirstOrDefault(x => x.id == companyId);
return View(company);

在你看来:

@foreach(var staff in Model.Staffs) { ... }

关于c# - MVC 两个 Controller 一个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33632865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com