我真的不知道該如何應對下一個問題:相關的聯繫人顯示數據
所以,我用ASP.NET MVC3,這是用來記得當事件developped一個基於Web的應用程序被傳達給一些人。
我有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(布爾)」不能轉換到'布爾'。
添加.FirstOrDefault()到你的查詢, Dim mail As Boolean =(From a In Model.Event 其中a.FK_id_contact = contact.idContact和a.FK_id_event = Model.Opportunite.idOpportunite 選擇a.mailed).FirstOrDefault(); – Yasser 2012-04-02 10:39:36
它告訴我,我已經有一個打開的DataReader與這個連接相關聯,必須先關閉它。我沒有看到我可以有一個開放的聯繫。我已經有過這種錯誤。在linq查詢之後加入「tolist」已經解決了這個問題。在這裏,它什麼都不做:-( – 2012-04-02 10:53:07
我在控制器的所有查詢之後放了一個tolist(),它解決了這個問題,我只是不知道爲什麼,Thx,複選框現在顯示出來,我將使用ajax查詢來更新複選框的更改 – 2012-04-02 10:54:54