我真的不知道如何处理下一期:
因此,我使用ASP.NET MVC3开发了一个基于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(Of Boolean)'的值不能转换为'Boolean'。
答案 0 :(得分:2)
这是应该有用的东西
@{
bool isMailed = // set values;
bool isPhoned = // set values
}
@Html.CheckBox("mailed ", isMailed );
@Html.CheckBox("phoned", isPhoned );
答案 1 :(得分:1)
在您的ContactViewModel中,您可以拥有两个属性
bool isMailed ;
bool isPhoned ;
然后,在绑定viewmodel视图并设置这些参数之前,您可以从控制器查询数据库。例如,如果要显示联系人ID = 1和事件id = 2的数据,则可以查询数据库表传输并查找是否已在之前调用或邮寄并更新ContactViewModel中的变量。
然后在您的视图中,您可以将值绑定到复选框,如下所示
@Html.CheckBox("mailed ", contact.isMailed );
@Html.CheckBox("phoned", contact.isPhoned );
如果您想更新数据库中的邮寄或电话,您可以使用上述ViewModel通过向控制器提交数据来完成。从控制器你可以找到什么是Event_Id,Contact_Id并邮寄或打电话,然后你可以相应地更新数据库