asp.net mvc一个模型一个view容易展示,可是遇到像首页那样,要同时调用好几个不同表的内容一小部分展示时,该怎么是好呢?
下边根据我的测试,用的是mvc access数据测试
先建立一个强类型 类文件lview(文件名自定)
public class lview
{
public List<Article> articles { get; private set; }
public List<Article> articles2 { get; private set; }
public lview(List<Article> larticles, List<Article> lartlist2s)
{
this.articles = larticles;
this.articles2 = lartlist2s;
}
}
类Article
public class Article
{
public string title { get; set; }
public string neirong { get; set; }
}
控制器读取index
List<Article> articles = new List<Article>();
List<Article> articles2 = new List<Article>();
// GET: Articleadd
public ActionResult Index()
{
DB mydb = new DB(); //数据库类文件自己写,连接access
OleDbDataReader dr=mydb.GetdataReader("select top 5 * from article");
while (dr.Read())
{
Article article = new Article();
article.title = dr["title"].ToString();
article.neirong= dr["neirong"].ToString();
articles.Add(article);
}
OleDbDataReader dr2 = mydb.GetdataReader("select top 5 * from article");
while (dr2.Read())
{
Article article2 = new Article();
article2.title = dr2["title"].ToString();
article2.neirong = dr2["neirong"].ToString();
articles2.Add(article2);
}
mydb.close();
//lview lv = new lview(articles,articles2);
//return View(lv);
return View(new lview(articles, articles2));
view页面读取
@model WebApplication40.Controllers.lview //(引用这个多的模型类)
下面循环读取1
<table>
@foreach (var item in Model.articles) //(Model.xx)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.title)
</td>
<td>
@Html.DisplayFor(modelItem => item.neirong)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) |
@Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ }) |
@Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })
</td>
</tr>
}
</table>
循环读取2
<table>
@foreach (var item in Model.articles2)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.title)
</td>
<td>
@Html.DisplayFor(modelItem => item.neirong)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) |
@Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ }) |
@Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })
</td>
</tr>
}
</table>
如果还有很多,就@foreach (var item in Model.xxx)