2014-09-02 2 views
0

У меня есть 2 таблицы соответствующие в моем MVC5 Применение с участием членских взносов:Контроллер MVC5: Список возвратов всех Платных Членов?

[MemberDues] -- [Id], [Year], [Display], [Amount] 

[MemberDuesReceived] -- [Id], [MemberDuesId], [MemberOrgId], [PaidByUserId], [TransactionId], [Paid], [DatePaid], [PaymentMethod], [PayPalPaymentId], [PayPalPayerId], [PayPalPaymentState] 

для MemberDuesManageController Я пытаюсь создать ViewDuesPaidMembers() метод, где я возвращающий список всех MemberOrgs, которые оплатили свои взносы. Теперь я могу получить текущий MemberDues.[Id], передавая свою модель Id от кнопки на моем Индексный просмотр и поиск в базе данных: MemberDues memberDues = await db.MemberDues.FindAsync(id);

То, что я не уверен в том, как я использую этот MemberDues.[Id] для поиска MemberDuesReceived стол и возврат список всех MemberDuesReceived.[MemberOrgId] с [Paid] значением True в течение моего действия.

Ниже приведено то, что у меня есть до сих пор. Может ли кто-нибудь представить пример того, как я могу вернуть соответствующий список MemberOrgs из другой таблицы?

public async Task<ActionResult> ViewDuesPaidMembers(int id) 
     { 
      MemberDues memberDues = await db.MemberDues.FindAsync(id); 
      return null; 
     } 

EDIT:

Учитывая предложение счетов Джоунсов теперь у меня есть:

public async Task<ActionResult> DuesPaidMembers(int id) 
     { 
      MemberDues memberDues = await db.MemberDues.FindAsync(id); 
      var duesPaidList = db.MemberDuesReceived.Where(mdr => mdr.MemberDuesId == id && mdr.Paid).ToList(); 
      return View(duesPaidList); 
     } 

То, что я пытаюсь выяснить теперь, как настроить свою кнопку так, чтобы она будет использовать новый метод контроллера DuesPaidMembers() и перенаправить на просмотр DuesPaidMember.cshtml, чтобы отобразить мой список оплачиваемых Членов:

<a href="MembersDuesManage/DuesPaidMembers/@item.Id" class="btn btn-default btn-sm noDecoration"><span class="glyphicon glyphicon-list-alt"></span> View Paid</a> 

В настоящее время моя кнопка принимает меня http://localhost:15160/Admin/MembersDuesManage/DuesPaidMembers/1, с сообщением: "The resource cannot be found."

ответ

2

Find использует первичный ключ, чтобы найти одну запись. Вы хотите использовать Where на свой внешний ключ таблицы:

var duesList = db.MemberDuesReceived 
        .Where(mdr => mdr.MemberDuesId == id && mdr.Paid) 
        .ToList(); 

предполагая Paid является булево значение.

Если Вы желаете просто список MemberOrgId вы бы добавить Select заявление:

var idList = db.MemberDuesReceived 
        .Where(mdr => mdr.MemberDuesId == id && mdr.Paid) 
        .Select(mdr => mdr.MemberOrgId) 
        .ToList(); 
+0

Спасибо за ответ Джонси! Кажется, что каждый раз, когда я начинаю этот проект и получаю небольшую зависть от вещей, я затем отвлекаюсь на другого и забываю об основных вещах, подобных этому. Я возвращаю свой список для просмотра, но не совсем уверен, как настроить мою кнопку для перенаправления на мой новый вид с помощью List(): ' Paid' для перенаправления на мой 'DuesPaidMembers.cshtml', который я создал в папке' MemberDuesManage' в 'Просмотры'. –

+0

Ну, похоже, что ваше действие - «ViewDuesPaidMembers», поэтому убедитесь, что вы назовете его правильным именем. Кроме этого мне нужна дополнительная информация. Вероятно, стоит открыть другой вопрос, если вы не можете его решить. – Jonesopolis

+0

Хорошо, я добавил дополнительную информацию в свое Редактирование. Если вы ничего не заметите, я открою новый quesiton. –

Смежные вопросы