[英]Display two model in a View?
我在控制器中有两个模型
public ActionResult Search(int? id)
{
var yearSummary = from ti in db.TrainingRecordDBSet
join si in db.StaffInfoDBSet
on ti.StaffId equals si.StaffId
group ti by ti.Year into g
select new {
Year = g.Key,
SHour = g.Sum(ti => ti.Hour)
};
var trainingQ = from t in db.TrainingRecordDBSet.Include("StaffInfo")
where t.StaffId == id orderby t.StaffId, t.Tid
select t;
var list = trainingQ.ToList();
ViewBag.yearSummary = yearSummary;
return View(list);
}
我想同时显示数据库中的“ trainingQ”和数据库中的“ yearSummary”,其中“ traingingQ”已经成功,但是“ yearSummary”,我不知道如何显示,亲爱的朋友们告诉我该怎么办?
这是视图的编码,并且不起作用
@var yearSummary = (dynamic) ViewBag.yearSummary;
@foreach (var item in Model)
{
<tr>
<td>
@*var yearSummary = (StaffInfoEditViewModel) ViewBag.yearSummary;*@
@{
Html.DisplayFor(modelItem => item.Shour);
}
</td>
<td>
@{
Html.DisplayFor(modelItem => item.Shour);
}
</td>
</tr>
}
</table>
非常感谢你!!
创建一个类(模型)来保存视图所需的数据。
public class SearchVM
{
public IEnumerable<YearSummary> YearSummary { get; set; }
public IEnumerable<TrainingQ> Training { get; set; }
}
public ActionResult Search(int? id)
{
var model = new SearchVM
{
YearSummary = (from ti in db.TrainingRecordDBSet
join si in db.StaffInfoDBSet
on ti.StaffId equals si.StaffId
group ti by ti.Year into g
select new {
Year = g.Key,
SHour = g.Sum(ti => ti.Hour)
})
.AsEnumerable()
.Select(ys => new YearSummary { Year = ys.YEar, SHour = ys.Shour {)
.ToList(),
TrainingQ = (from t in db.TrainingRecordDBSet.Include("StaffInfo")
where t.StaffId == id orderby t.StaffId, t.Tid
select t)
.ToList()
};
return View(model);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.