я не знаю, как иметь дело со следующим вопросом:отображающих данные, относящихся к контакту
Итак, у меня есть webbased приложения развившееся с ASP.NET MVC3, который используется, чтобы помнить, когда событие передается некоторым людям.
Я 3 таблицы
Contact
id_contact
name
firstname
...
event
id_event
...
transmission
FK_id_event
FK_id_firstname
mailed (boolean)
phoned (boolean)
Для каждого события, мне нужно перечислить все контакты, которые связаны с этим событием. И для каждого контакта мне нужно отобразить 2 флажка, которые необходимо проверить, если контакт был вызван или отправлен по почте.
'
' GET: /Event/Details/5
Function Details(id As Integer) As ViewResult
Dim event As event = db.event.Single(Function(o) o.idOpportunite = id)
Dim contacts = (From a In db.contact, b In db.transmission
Where a.id_Contact = b.FK_id_contact And b.FK_id_event = id
Select a)
Dim transmission = (From a In contacts, b In db.transmission
Where a.id_Contact = b.FK_trans_cont
Select b)
Dim model = New EventDetails With {
.event= event,
.Contacts = contacts,
.TransOpp = transopp
}
Return View(model)
End Function
Я не знаю, хорошая ли «передача» части кода или нет.
Здесь в представлении, это был я отобразить контакты
@For Each contact In Model.contacts
@<tr>
<td>
@Html.ActionLink(contact.name + " " + contact.firstname , "Details", New With {.id = contact.idContact})
</td>
<td>
@Html.Raw(contact.phone)
</td>
<td>
@*Html.DisplayFor(Function(modelItem) currentItem.mail)*@
<a href=mailto:@contact.mail>@Html.Raw(contact.mail)</a>
</td>
<td>
***My checkboxes should be here***
</td>
</tr>
Next
Итак, мой вопрос, что я должен сделать, чтобы отобразить эти флажки?
(извините, если я не понимаю, я не являюсь носителем английского языка. Не стесняйтесь редактировать мои английские ошибки (или название, которое не является отличным)).
С помощью Ясира, я сделал это:
@code
Dim mail As Boolean = (From a In Model.Event
Where a.FK_id_contact = contact.idContact And a.FK_id_event = Model.Opportunite.idOpportunite
Select a.mailed)
End Code
Однако я получаю сообщение об ошибке: значения типа «System.Collections.Generic.IEnumerable (булевых)» не может быть преобразована на «Boolean».
добавить .FirstOrDefault() в запросе, как, Dim почту As Boolean = (Из В Model.Event Где a.FK_id_contact = contact.idContact И a.FK_id_event = Model.Opportunite.idOpportunite Выберите a.mailed) .FirstOrDefault(); – Yasser
Он говорит мне, что у меня уже есть открытый DataReader, связанный с этим соединением, который должен быть закрыт первым. Я не вижу, могу ли я иметь открытую связь. У меня уже была такая ошибка. Помещение «списка» после запроса linq решило проблему.Здесь он ничего не делает :-( –
Я поставил tolist() после всех запросов контроллера и решил проблему. Я просто не знаю почему. Теперь отображаются флажки Thx, Я буду использовать ajax-запрос для обновления изменений флажков –