ASP.NET MVC:在不同视图上显示相同的结果

时间:2009-03-16 07:12:12

标签: asp.net-mvc

我正在使用ASP.NET MVC开发一个学习项目。我有一个列出已记录用户书籍的页面,我想以两种格式显示这样的书籍

  • 普通列表 - >显示书籍缩略图,标题,页数,作者......

  • 明细清单 --->仅以HTML表格格式显示书名,作者,页数 格式

所以我有两个查看页面Books.aspx,BookDetails.aspx。一个用于普通列表,一个用于详细列表,但我有一个控制器操作可以从数据库返回书籍,并且只能将结果返回到一个页面。

    public ActionResult Index()
    {
        //get books from database
        return View(bookList);
    }

我是否必须包含参数并检查参数以将列表返回到不同的视图,还是有更好的方法来执行此操作?如何使用相同的Controller操作来显示两个视图?

2 个答案:

答案 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
<%}%>