Как показать список объектов в таблице в ASP.NET MVC? - PullRequest
1 голос
/ 29 января 2010

Я новичок в ASP.NET MVC и .NET в целом, поэтому просто получил простой вопрос. Я хочу отобразить список объектов на веб-странице, как лучше всего это сделать?

На данный момент представлены следующие модели:

public class NoticeBoard
{
    public List<Notice> Notices;

    public NoticeBoard()
    {
        Notices = new List<Notice>();
    }
}

public class Notice
{
    public int ID;
    public DateTime StartDate;
    public DateTime EndDate;
    public String Content;
}

Очень просто, контроллер создает объект NoticeBoard, содержащий список уведомлений, и представление должно отображать уведомления.

Я вижу, что есть элементы управления, такие как GridView, DataList, DetailsView, ListView. Каковы различия между ними и какой из них наиболее подходит для этого случая?

1 Ответ

2 голосов
/ 29 января 2010

Ни один из перечисленных элементов управления не подходит для MVC. Все это ASP.Net WebControls, предназначенные для использования с «классическим приложением ASP.Net» веб-форм. Для правильной работы они используют ViewState и другие механизмы жизненного цикла страницы и, как правило, не будут работать с проектом MVC.

Если вы используете ASP.Net MVC, вы имеете дело с HTML в более простой форме, а не с помощью веб-контролей. Чтобы создать список элементов, добавьте код, подобный этому, к вашему виду:

<% foreach(var notice in Model.Notices) { %>

   <tr>
     <td><%= notice.StartDate.ToString() %></td>
     <td><%= notice.EndDate.ToString() %></td>
     <td><%= notice.Content %></td>
   </tr>

<% } %>

Если вы обнаружите, что вы используете один и тот же код снова и снова для создания HTML в своих представлениях, рассмотрите возможность его написания в качестве метода расширения HtmlHelper.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...