我正在开发一个Index页面,它将更像是一个“Dashboard”类型的页面。在此Dashboard页面中,我想填充多个表中的数据。假设用户XYZ已登录。一旦登录,我想显示来自文章表,新闻表和请求表的数据。
这是我到目前为止所做的:
private dbEntities db = new dbEntities();
public ActionResult Index()
{
var articles = db.articles.Take(3);
// var news = db.news.Take(3); - How to display this and requests?
// var requests = db.requests.Take(3);
return View(articles.ToList());
}
@model IEnumerable<GB.Models.articles>
@{
ViewBag.Title = "Index";
}
<h2>Daskboard</h2>
// Article Info Here
// I would like News/Requests info here
感谢大家的帮助! 非常感谢。
答案 0 :(得分:1)
超级简单的方法是包装域模型的视图模型:
public class DashboardIndexViewModel {
public IEnumerable<Article> Articles { get; set; }
public IEnumerable<News> News { get; set; }
public IEnumerable<Request> Requests { get; set; }
}
在控制器中填充:
public ActionResult Index() {
var vm = new DashboardIndexViewModel {
Articles = db.articles.Take(3),
News = db.news.Take(3),
Requests = db.requests.Take(3)
}
return View(vm);
}
在视图中,您可以访问每个项目列表:
@model DashboardIndexViewModel
@{
ViewBag.Title = "Index";
}
<h2>Daskboard</h2>
@foreach (var a in Model.Articles) {
<p>....</p>
}
@foreach (var n in Model.News) {
<p>....</p>
}
@foreach (var r in Model.Requests) {
<p>....</p>
}