ASP.NET MVC, как создать модель, которая извлекает данные из 2 таблиц, для отображения в 1 представлении - PullRequest
0 голосов
/ 28 августа 2009

Я думаю, что это может быть очень простой вопрос, но я только начинаю с .net и c # и только на самом деле, наконец-то, разбираюсь в вещах.

Я создал приложение NerdDinner, и в настоящее время я строю поверх него свой собственный проект.

В контексте ужина для ботаников мне нужно отобразить детали ужина, а также показать все связанные RSVP на одной странице.

URL может быть таким же, как обычно

обеды / подробности / 2

но 2 будет использоваться для возврата всех связанных с этим rsvp и отображения их в списке на той же странице.

Я потратил некоторое время, пытаясь сделать это в файле dinnerRepository.cs, но я немного застрял и не уверен, что лучший способ сделать это.

Затем я хотел бы иметь возможность добавлять больше rsvp с той же страницы (я понимаю, что в этом примере это не работает, но вы видели, что я пытаюсь добавить больше строк в tableB, связанных с одной строкой в ​​tableA )

Пожалуйста, отвечайте на первый вопрос только в том случае, если вы считаете, что вторую часть следует задавать в другом месте.

Большое спасибо за любую помощь.

Ответы [ 3 ]

1 голос
/ 28 августа 2009

Вам вообще не нужно изменять файл dinnerRepository.cs. У модели ужина уже есть коллекция RSVP. Вам просто нужно изменить представление «Детали» следующим образом:

    <p>
    <% foreach(NerdDinner.Models.RSVP rsvp in this.Model.RSVPs)
       { %>
       <%= Html.Encode(rsvp.AttendeeName) %>
       <br />
       <%} %>
    </p>

Готово.

0 голосов
/ 28 августа 2009

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

RenderAction является частью сборки Futures: Microsoft.Web.Mvc.

0 голосов
/ 28 августа 2009

IIRC, в подробном представлении передается экземпляр Dinner. Просто выведите RSVP для этого ужина на странице с подробностями.

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