我有两个表,我试图拉信息,一个是工作表,我有我的工作存储的所有信息,另一个是保存的工作表,我希望有一个工作的ID与申请它的用户的ID相关。
我想通过使用保存在SavedJobs表中的ID过滤视图页中的表来显示用户已申请的Job列表。
下面是一个视图无法工作的示例,因为我不知道如何在单个视图中访问多个模型的数据。
@model IEnumerable<JobPortalApplication.Models.Job>
@{
ViewBag.Title = "Index";
}
<h2>Applicants</h2>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.Type)
</th>
<th>
@Html.DisplayNameFor(model => model.Location)
</th>
<th>
@Html.DisplayNameFor(model => model.Company)
</th>
<th>
@Html.DisplayNameFor(model => model.Category)
</th>
<th>
@Html.DisplayNameFor(model => model.Experience)
</th>
<th>
@Html.DisplayNameFor(model => model.Salary)
</th>
<th>
@Html.DisplayNameFor(model => model.Education)
</th>
<th>
@Html.DisplayNameFor(model => model.Date)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
if(item.ID.Equals(JobPortal.Models.SavedJob.JobId){//this does not work because I can't access JobId
<tr>
<td>
@Html.DisplayFor(modelItem => item.Type)
</td>
<td>
@Html.DisplayFor(modelItem => item.Location)
</td>
<td>
@Html.DisplayFor(modelItem => item.Company)
</td>
<td>
@Html.DisplayFor(modelItem => item.Category)
</td>
<td>
@Html.DisplayFor(modelItem => item.Experience)
</td>
<td>
$@Html.DisplayFor(modelItem => item.Salary)
</td>
<td>
@Html.DisplayFor(modelItem => item.Education)
</td>
<td>
@Html.DisplayFor(modelItem => item.Date)
</td>
<td>
@Html.ActionLink("Details", "Details", new { id=item.ID })
</td>
</tr>
}
}
</table>
我也尝试过一种方法,允许多个模型在一个单一的视图,像这样,但它似乎没有工作
//controller action
public ActionResult Details(int? id)
{
var Job1 = GetJobs();
var SavedJobs1 = GetSavedJobs();
IndexVM model = new IndexVM();
model.JobsList = Job1;
model.SavedJobList = SavedJobs1;
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
User user = _dbContext.Users.Find(id);
if (user == null)
{
return HttpNotFound();
}
return View(model);
}
//view
@foreach (var item1 in Model.JobsList)
{
foreach (var item in Model.SavedJobList)
{
if (item.JobId.Equals(item1.ID))
{
<table class="table">
<dt>
@item1.ID
</dt>
<dt>
@item1.Type
</dt>
<dt>
@item1.Location
</dt>
<dt>
@item1.Company
</dt>
<dt>
@item1.Experience
</dt>
<dt>
@item1.Salary
</dt>
<dt>
@item1.Education
</dt>
<dt>
@item1.Date
</dt>
<dt>
@item1.Category
</dt>
</table>
}
}
}
如果你能推荐一个更好的方法来保存作业给一个特定的用户,我也会很感激的。
1条答案
按热度按时间gjmwrych1#
我认为您应该在背面过滤这些数据,只在正面显示。
我猜您需要保存的作业列表中的作业列表
这可以使用以下LINQ表达式解决: