使用剃须刀在 mvc 中的同一视图中显示多个表的结果
Displaying results of multiple tables in same view in mvc with razor
我有3个table如下:
职位:IdJob、描述、...
JobSkill:IdSkill,Id_Job,职位,描述,级别 ...
职位要求:IdReq,Id_Job,职位,描述...
(填充数据如下:
1,职位 1,职位 1
2,工作 2,标题 2
/////
1, 1, 技能 1 工作 1
2, 1, 技能 2 工作 1
3, 2, 技能 1 工作 2
///
1, 1, Req1Job1
2, 1, Req2Job1
3、2、Req1Job2
4、2、Req2Job2
/// 等等
在一个视图中,我显示了作业 table 中的所有作业,如下所示:
@model IEnumerable<JobShop.Jobs>
@{
ViewBag.Title = "Jobs Listing Index";
}
<div class="title-lines">
<h3 class="mt0">Available Jobs Listing</h3>
</div>
@if (Model.Count() > 0)
{
<div>
@{int i = 1;
foreach (var item in Model)
{
<div class="bordered @(i++ % 2 == 0 ? "highlighted" : "")">
<p>@item.IdJob</p>
<p>@item.Titlu</p>
<p>@item.DateAdd</p>
<div class="thumb">
<img src="@item.ImageSRC" />
</div>
<p class="">@item.Description</p>
<p class="">@item.Content</p>
<p class="">@item.Demand</p>
<p>@item.Address</p>
<!--Here I want another div for JobSkills
<div>
foreach (var item1 in WhatModel1)
{
<div class="JobSkill">
//Skill(s)
<p>@item1.Id_Job</p>
<p>@item1.Title</p>
<p>@item1.Level</p>
</div>
}
</div>
-->
<!--Here I want another div for JobsRequirments
<div>
foreach (var item2 in WhatModel2)
{
<div class="JobReq">
//Requirment(s)
<p>@item2.Id_Job </p>
<p>@item2.Requirment</p>
</div>
-->
}
</div>
</div>
}
}
</div>
}
else
{<p style="color: red">Sorry ! No record(s) found.</p>}
如何在主 foreach 循环的每次迭代中从其他 2 table 中提取数据?
我也有型号:
namespace JobShop
{
using System;
using System.Collections.Generic;
public partial class Jobs
{
public Jobs()
{
this.JobRequirements = new HashSet<JobRequirements>();
this.JobSkills = new HashSet<JobSkills>();
}
public int IdJob { get; set; }
public Nullable<int> IdWho { get; set; }
public string User { get; set; }
public Nullable<System.DateTime> DateAdd { get; set; }
public string ImageSRC { get; set; }
public string Titlu { get; set; }
public string WhereWhat { get; set; }
public string Description { get; set; }
public string Content { get; set; }
public string Solicitare { get; set; }
public Nullable<System.DateTime> DateStart { get; set; }
public Nullable<System.DateTime> DateEnd { get; set; }
public string Orar { get; set; }
public string Address { get; set; }
public Nullable<double> Latitudine { get; set; }
public Nullable<double> Longitudine { get; set; }
public string ZIP { get; set; }
public virtual AspNetUsers AspNetUsers { get; set; }
public virtual ICollection<JobRequirements> JobRequirements { get; set; }
public virtual ICollection<JobSkills> JobSkills { get; set; }
}
}
和控制器的相关部分:
namespace JobShop
{
public class JobsController : Controller
{
private JobShopEntities db = new JobShopEntities();
// GET: Jobs
public ActionResult Index(string sortOrder, string currentFilter, string searchString, int? page)
{
//stuff for paging, searching and sorting
ViewBag.CurrentSort = sortOrder;
ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";
if (searchString != null)
{
page = 1;
}
else
{
searchString = currentFilter;
}
ViewBag.CurrentFilter = searchString;
//
var jobs = db.Jobs.Include(j => j.AspNetUsers);
//Some search stuff
if (!String.IsNullOrEmpty(searchString))
{
jobs = jobs.Where(s => s.Titlu.Contains(searchString)
|| s.Description.Contains(searchString));
}
//
switch (sortOrder)
{
case "name_desc":
jobs = jobs.OrderByDescending(s => s.Titlu);
break;
case "Date":
jobs = jobs.OrderBy(s => s.DateAdd);
break;
case "date_desc":
jobs = jobs.OrderByDescending(s => s.DateAdd);
break;
default:
//jobs = jobs.OrderBy(s => s.Titlu);
jobs = jobs.OrderBy(s => s.DateAdd);
break;
}
//
int pageSize = 5;
int pageNumber = (page ?? 1);
return View(jobs.ToPagedList(pageNumber, pageSize));
//return View(jobs.ToList());
}
该模型是 IEnumerable<JobShop.Jobs>
的一个实例。
foreach (var item in Model)
每个项目都是 JobShop.Jobs
的一个实例。因此,您可以像在任何常规 C# class.
中一样访问 JobShop.Jobs 的属性
foreach(var jobRequirements in item.JobRequirements)
和
foreach(var jobSkills in item.JobSkills)
我有3个table如下: 职位:IdJob、描述、...
JobSkill:IdSkill,Id_Job,职位,描述,级别 ...
职位要求:IdReq,Id_Job,职位,描述...
(填充数据如下: 1,职位 1,职位 1 2,工作 2,标题 2 ///// 1, 1, 技能 1 工作 1 2, 1, 技能 2 工作 1 3, 2, 技能 1 工作 2 /// 1, 1, Req1Job1 2, 1, Req2Job1 3、2、Req1Job2 4、2、Req2Job2 /// 等等
在一个视图中,我显示了作业 table 中的所有作业,如下所示:
@model IEnumerable<JobShop.Jobs>
@{
ViewBag.Title = "Jobs Listing Index";
}
<div class="title-lines">
<h3 class="mt0">Available Jobs Listing</h3>
</div>
@if (Model.Count() > 0)
{
<div>
@{int i = 1;
foreach (var item in Model)
{
<div class="bordered @(i++ % 2 == 0 ? "highlighted" : "")">
<p>@item.IdJob</p>
<p>@item.Titlu</p>
<p>@item.DateAdd</p>
<div class="thumb">
<img src="@item.ImageSRC" />
</div>
<p class="">@item.Description</p>
<p class="">@item.Content</p>
<p class="">@item.Demand</p>
<p>@item.Address</p>
<!--Here I want another div for JobSkills
<div>
foreach (var item1 in WhatModel1)
{
<div class="JobSkill">
//Skill(s)
<p>@item1.Id_Job</p>
<p>@item1.Title</p>
<p>@item1.Level</p>
</div>
}
</div>
-->
<!--Here I want another div for JobsRequirments
<div>
foreach (var item2 in WhatModel2)
{
<div class="JobReq">
//Requirment(s)
<p>@item2.Id_Job </p>
<p>@item2.Requirment</p>
</div>
-->
}
</div>
</div>
}
}
</div>
}
else
{<p style="color: red">Sorry ! No record(s) found.</p>}
如何在主 foreach 循环的每次迭代中从其他 2 table 中提取数据?
我也有型号:
namespace JobShop
{
using System;
using System.Collections.Generic;
public partial class Jobs
{
public Jobs()
{
this.JobRequirements = new HashSet<JobRequirements>();
this.JobSkills = new HashSet<JobSkills>();
}
public int IdJob { get; set; }
public Nullable<int> IdWho { get; set; }
public string User { get; set; }
public Nullable<System.DateTime> DateAdd { get; set; }
public string ImageSRC { get; set; }
public string Titlu { get; set; }
public string WhereWhat { get; set; }
public string Description { get; set; }
public string Content { get; set; }
public string Solicitare { get; set; }
public Nullable<System.DateTime> DateStart { get; set; }
public Nullable<System.DateTime> DateEnd { get; set; }
public string Orar { get; set; }
public string Address { get; set; }
public Nullable<double> Latitudine { get; set; }
public Nullable<double> Longitudine { get; set; }
public string ZIP { get; set; }
public virtual AspNetUsers AspNetUsers { get; set; }
public virtual ICollection<JobRequirements> JobRequirements { get; set; }
public virtual ICollection<JobSkills> JobSkills { get; set; }
}
}
和控制器的相关部分:
namespace JobShop
{
public class JobsController : Controller
{
private JobShopEntities db = new JobShopEntities();
// GET: Jobs
public ActionResult Index(string sortOrder, string currentFilter, string searchString, int? page)
{
//stuff for paging, searching and sorting
ViewBag.CurrentSort = sortOrder;
ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";
if (searchString != null)
{
page = 1;
}
else
{
searchString = currentFilter;
}
ViewBag.CurrentFilter = searchString;
//
var jobs = db.Jobs.Include(j => j.AspNetUsers);
//Some search stuff
if (!String.IsNullOrEmpty(searchString))
{
jobs = jobs.Where(s => s.Titlu.Contains(searchString)
|| s.Description.Contains(searchString));
}
//
switch (sortOrder)
{
case "name_desc":
jobs = jobs.OrderByDescending(s => s.Titlu);
break;
case "Date":
jobs = jobs.OrderBy(s => s.DateAdd);
break;
case "date_desc":
jobs = jobs.OrderByDescending(s => s.DateAdd);
break;
default:
//jobs = jobs.OrderBy(s => s.Titlu);
jobs = jobs.OrderBy(s => s.DateAdd);
break;
}
//
int pageSize = 5;
int pageNumber = (page ?? 1);
return View(jobs.ToPagedList(pageNumber, pageSize));
//return View(jobs.ToList());
}
该模型是 IEnumerable<JobShop.Jobs>
的一个实例。
foreach (var item in Model)
每个项目都是 JobShop.Jobs
的一个实例。因此,您可以像在任何常规 C# class.
foreach(var jobRequirements in item.JobRequirements)
和
foreach(var jobSkills in item.JobSkills)