以下是viewModel的观点: -
@model _24By7CallAndBPOPvtLtd.Models.JobDetailandApplyModel
<table class="table table-striped">
@foreach (var item in Model.jobdetail)
{
<tr>
<td>
@item.job_title
</td>
<td>
<a href="@Url.Action("Edit", new { id = item.Job_ID })"><i class="glyphicon glyphicon-pencil"></i></a>
<a href="@Url.Action("Delete", new { id = item.Job_ID })"><i class="glyphicon glyphicon-remove" style="color:red"></i></a>
</td>
</tr>
}
</table>
<table class="table table-striped">
@foreach (var item in Model.jobapplied)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.User_Account.Full_Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Job_Det.job_title)
</td>
<td>
<a href="/Content/CV/@item.User_CV.Cv_Path" target="_blank">Download</a>
</td>
</tr>
}
</table>
这是我的控制器: -
public ActionResult Test1()
{
var jobs=db.Job_Det.ToList();
return View(jobs);
}
public ActionResult Test2()
{
db.Job_Applied.ToList();
return View("Test1");
}
这是我的ViewModel: -
public class JobDetailandApplyModel
{
public IEnumerable<Job_Det> jobdetail { get; set; }
public IEnumerable<Job_Applied> jobapplied { get; set; }
}
public partial class Job_Applied
{
public int JobApplied_ID { get; set; }
public int Employeer_ID { get; set; }
public int Job_ID { get; set; }
public int User_ID { get; set; }
public Nullable<int> Cv_Id { get; set; }
public Nullable<int> status_Id { get; set; }
public System.DateTime date_applied { get; set; }
public Nullable<System.TimeSpan> time_applied { get; set; }
public string timestamp_applied { get; set; }
public virtual Employeer Employeer { get; set; }
public virtual Job_Det Job_Det { get; set; }
public virtual Status Status { get; set; }
public virtual User_CV User_CV { get; set; }
public virtual User_Account User_Account { get; set; }
}
这段代码有什么问题?。我在一个视图中使用viewModel传递两个模型,我需要在一个视图中显示两个列表..
答案 0 :(得分:1)
尝试
var jobs = db.Job_Det.ToList();
var jobApplied = db.Job_Applied.Include(x => x.Job_Det).ToList();
JobDetailandApplyModel model = new JobDetailandApplyModel() {
jobdetail = jobs,
jobapplied = jobApplied
}
return View(model);
另外,不确定这是否有所作为但是替换
@Html.DisplayFor(modelItem => item.Job_Det.job_title)
带
@item.Job_Det.job_title
答案 1 :(得分:0)
您需要正确初始化模型并为两个属性中的每一个指定值。将您的控制器更改为以下内容:
var model = new JobDetailAndApplyModel();
model.jobdetail = db.Job_Det.ToList();
model.jobapplied = db.Job.Applied.ToList();
return view(model);
编辑:你有的Test2控制器不会做太多,当你传递一个字符串,就像它只使用名称与该字符串相同的视图。它没有传递任何模型,因此您将得到一个空引用错误。你需要这样的东西才能让它起作用:
return View("Test1", model);
使用上面的其他代码创建模型对象。
答案 2 :(得分:0)
您的视图需要JobDetailandApplyModel
类型的模型Test1提供类型
的模型列表&lt; Job_Det&gt;
Test2提供NO模型