Asp.net core 如何在一个视图中包含3个表asp.net core 5
我有三张桌子Asp.net core 如何在一个视图中包含3个表asp.net core 5,asp.net-core,Asp.net Core,我有三张桌子 Customer Assign Employee 我已将Assign和Employee链接在一起,因为需要FK in Assign,但是,客户不需要任何关系,但我希望在Assign的视图索引中显示客户分配显示数据,ViewModel用于显示员工姓名 但是,如何在此视图中显示硬编码名称和Id所在的customer表 分配模型 public class Assign { [Key] public int Id { get; set; } public str
Customer
Assign
Employee
我已将Assign
和Employee
链接在一起,因为需要FK in Assign,但是,客户不需要任何关系,但我希望在Assign
的视图索引中显示客户<代码>分配显示数据,ViewModel用于显示员工姓名
但是,如何在此视图中显示硬编码名称和Id所在的customer表
分配模型
public class Assign
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public string Tasks { get; set; }
public string Telephone { get; set; }
public string Address { get; set; }
public string Status { get; set; }
public string ImageUrl { get; set; }
public int EmployeeNameId { get; set; }
[ForeignKey("EmployeeNameId")]
public virtual Employee Employee { get; set; }
}
客户模型
public class Customer
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public string Tasks { get; set; }
public string Telephone { get; set; }
public string Address { get; set; }
public string ImageUrl { get; set; }
}
员工模式
public class Employee
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public string Speciality { get; set; }
}
指定视图模型
public class AsignVM
{
public Asign Asign { get; set; }
public IEnumerable<SelectListItem> TypeDropDown { get; set; }
}
公共类AsignVM
{
公共Asign Asign{get;set;}
公共IEnumerable类型下拉列表{get;set;}
}
分配控制器
public class AsignController : Controller
{
private readonly ApplicationDbContext _db;
public AsignController(ApplicationDbContext db)
{
_db = db;
}
public IActionResult Index()
{
IEnumerable<Asign> objList = _db.Asigns;
IEnumerable<Customer> assdasd = _db.Customers;
foreach (var obj in objList)
{
obj.Employee = _db.Employees.FirstOrDefault(u => u.Id == obj.EmployeeNameId);
}
return View(objList);
}
public IActionResult Create()
{
//IEnumerable<SelectListItem> typeDropDown = _db.Employees.Select(i => new SelectListItem
//{
// Text =i.Name + " Speciality = " + i.Speciality,
// Value = i.Id.ToString()
//});
//ViewBag.typeDropDown = typeDropDown;
AsignVM asignVM = new AsignVM()
{
Asign = new Asign(),
TypeDropDown = _db.Employees.Select(i => new SelectListItem
{
Text = i.Name,
Value = i.Id.ToString()
})
};
return View(asignVM);
}
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Create(AsignVM obj)
{
_db.Asigns.Add(obj.Asign);
_db.SaveChanges();
return RedirectToAction("Index");
}
public IActionResult Delete(int? id)
{
if (id == null || id == 0)
{
return NotFound();
}
var obj = _db.Asigns.Find(id);
if (obj == null)
{
return NotFound();
}
return View(obj);
}
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult DeletePost(int? id)
{
var obj = _db.Asigns.Find(id);
if (obj == null)
{
return NotFound();
}
_db.Asigns.Remove(obj);
_db.SaveChanges();
return RedirectToAction("Index");
}
}
公共类AsignController:Controller
{
私有只读应用程序dbContext_db;
公共AsignController(ApplicationDbContext数据库)
{
_db=db;
}
公共IActionResult索引()
{
IEnumerable对象列表=_db.Asigns;
IEnumerable assdasd=_db.Customers;
foreach(对象列表中的var obj)
{
obj.Employee=_db.Employees.FirstOrDefault(u=>u.Id==obj.EmployeeNameId);
}
返回视图(对象列表);
}
public IActionResult Create()
{
//IEnumerable typeDropDown=\u db.Employees.Select(i=>new SelectListItem
//{
//Text=i.Name+“Speciality=“+i.Speciality,
//Value=i.Id.ToString()
//});
//ViewBag.typeDropDown=typeDropDown;
AsignVM AsignVM=新AsignVM()
{
Asign=新Asign(),
TypeDropDown=\u db.Employees.Select(i=>new SelectListItem
{
Text=i.名称,
Value=i.Id.ToString()
})
};
返回视图(asignVM);
}
[HttpPost]
[ValidateAntiForgeryToken]
公共IActionResult创建(AsignVM obj)
{
_db.Asigns.Add(对象Asign);
_db.SaveChanges();
返回操作(“索引”);
}
公共IActionResult删除(int?id)
{
如果(id==null | | id==0)
{
返回NotFound();
}
var obj=_db.Asigns.Find(id);
if(obj==null)
{
返回NotFound();
}
返回视图(obj);
}
[HttpPost]
[ValidateAntiForgeryToken]
公共IActionResult DeletePost(int?id)
{
var obj=_db.Asigns.Find(id);
if(obj==null)
{
返回NotFound();
}
_db.Asigns.Remove(obj);
_db.SaveChanges();
返回操作(“索引”);
}
}
分配索引
@model IEnumerable<HandyApp.Models.Asign>
<h1 style="margin-left: 52px;margin-top: 21px;">Customer Jobs</h1>
<div class="table-responsive" style="margin-top: 12px;">
<table class="table">
<thead>
<tr>
<th style="margin-top: 0px;width: 143px;">Customer name</th>
<th style="margin-top: 0px;">Job ID</th>
</tr>
</thead>
<tbody>
<tr>
<td>Name</td>
<td>1223</td>
<td><button class="btn btn-primary" type="button" style="margin-top: 3px; margin-bottom: 4px;">view details</button><button class="btn btn-primary" type="button" style="margin-left: 7px; margin-top: 3px; margin-bottom: 4px;">Delete</button><a class="btn btn-primary" type="button" style="margin-left: 7px; margin-top: 3px; margin-bottom: 4px;" asp-controller="Asign" asp-action="Create">assign</a></td>
</tr>
</tbody>
</table>
</div>
<h1 style="margin-left: 52px;margin-top: 21px;">Assigned jobs</h1>
<div class="table-responsive" style="margin-top: 12px;">
<table class="table">
<thead>
<tr>
<th style="margin-top: 0px;width: 143px;">Customer name</th>
<th style="margin-top: 0px;">Tasks</th>
<th style="margin-top: 0px;">Status</th>
<th style="margin-top: 0px;">Assigned to</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>@item.Name</td>
<td>@item.Tasks</td>
<td>@item.Status</td>
<td>@item.Employee.Name</td>
<td><a class="btn btn-primary" type="button" style="margin-left: 7px; margin-top: 3px; margin-bottom: 4px;" asp-controller="Asign" asp-action="Delete" asp-route-Id="@item.Id">Delete</a></td>
</tr>
}
</tbody>
</table>
</div>
@model IEnumerable
客户工作
客户名称
工作ID
名称
1223
查看详细信息删除分配
分配的工作
客户名称
任务
地位
分配给
@foreach(模型中的var项目)
{
@项目名称
@项目.任务
@项目.状况
@item.Employee.Name
删除
}
我已将Assign和Employee链接在一起,因为需要
但是,在assign中,客户不需要任何关系
我希望在分配的索引视图中显示客户。指定显示器
数据和视图模型用于显示员工姓名
但是,如何在此视图中显示客户表,其中
硬编码的名称和Id为
由于客户不包含与Assign、Employee和AsignVM模型的关系,要在Assign Index视图中显示客户数据,必须使用ViewData或ViewBag
public IActionResult Index()
{
IEnumerable<Asign> objList = _db.Asigns;
IEnumerable<Customer> assdasd = _db.Customers;
foreach (var obj in objList)
{
obj.Employee = _db.Employees.FirstOrDefault(u => u.Id == obj.EmployeeNameId);
}
// use ViewBag pass the data to the View
ViewBag.Customer = assdasd;
return View(objList);
}
public IActionResult Index()
{
我数不清
@if (ViewBag.Customer != null)
{
foreach (var item in (IEnumerable<Customer>)ViewBag.Customer)
{
//display the records.
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
</tr>
}
}