我正在使用ASP.NET MVC开发一个学习项目。我有一个列出已记录用户书籍的页面,我想以两种格式显示这样的书籍
普通列表 - >显示书籍缩略图,标题,页数,作者......
明细清单 --->仅以HTML表格格式显示书名,作者,页数 格式
所以我有两个查看页面Books.aspx,BookDetails.aspx。一个用于普通列表,一个用于详细列表,但我有一个控制器操作可以从数据库返回书籍,并且只能将结果返回到一个页面。
public ActionResult Index()
{
//get books from database
return View(bookList);
}
我是否必须包含参数并检查参数以将列表返回到不同的视图,还是有更好的方法来执行此操作?如何使用相同的Controller操作来显示两个视图?
答案 0 :(得分:2)
只需传递视图名称:
return View("Books", bookList);
...或....
return View("BookDetails", bookList);
答案 1 :(得分:1)
查看使用部分视图并为其创建控制器操作
public ActionResult NormalList{
ViewData["normalList"] = //db retrieval code;
return View("NormalList");
}
public ActionResult DetailedList{
ViewData["detailedList"] = //db retrieval code;
return View("DetailedList");
}
页面
<%= Html.RenderPartial("NormalList", ViewData)%>
<%= Html.RenderPartial("DetailedList", ViewData)%>
和你的部分
<%foreach(var item in (IEnumerable)ViewData["normalList"]){%>
//blah blah blah
<%}%>