ASP.NET MVC: отображение одинаковых результатов в другом представлении - PullRequest
1 голос
/ 16 марта 2009

Я занимаюсь разработкой учебного проекта на ASP.NET MVC. У меня есть страница со списком зарегистрированных пользователей, и я хочу отображать книги в двух форматах, подобных этому

  • Обычный список -> Отображение миниатюры книги, заголовка, количества страниц, автора ...

  • Подробный список ---> Отображать только название книги, автора, количество страниц в формате таблицы HTML
    формат

поэтому у меня есть две страницы просмотра Books.aspx, BookDetails.aspx. Один для обычного списка, другой для подробного списка, но у меня есть одно действие контроллера, которое возвращает книги из базы данных и может возвращать результаты только на одну страницу.

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

Нужно ли включать параметр и проверять параметр для возврата списка в другое представление или есть лучший способ сделать это? Как я могу использовать одно и то же действие контроллера для отображения двух представлений?

Ответы [ 2 ]

2 голосов
/ 17 марта 2009

Просто передайте имя представления:

return View("Books", bookList);

... или ....

return View("BookDetails", bookList);
1 голос
/ 16 марта 2009

Просмотрите использование частичных представлений и создайте для них действия контроллера

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
<%}%>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...