.net 在显示“之前,请检查数据库中是否存在行”;加上「;按钮

.net 在显示“之前,请检查数据库中是否存在行”;加上「;按钮,.net,vb.net,asp.net-mvc-3,linq,razor,.net,Vb.net,Asp.net Mvc 3,Linq,Razor,我有一个包含联系人的表,一个包含事件的表,以及一个将联系人链接到这些事件的表 因此,在我的视图中,我选择了一个事件,我可以看到允许添加到此事件的联系人列表 目前,可以将联系人多次添加到事件中 我想在显示按钮之前检查联系人是否已添加到事件中 以下是我的看法: <td> @Code Dim flag1 As Integer = 0 flag1 = (From a In Model.trans_Event Where a.

我有一个包含联系人的表,一个包含事件的表,以及一个将联系人链接到这些事件的表

因此,在我的视图中,我选择了一个事件,我可以看到允许添加到此事件的联系人列表

目前,可以将联系人多次添加到事件中

我想在显示按钮之前检查联系人是否已添加到事件中

以下是我的看法:

 <td>
      @Code
      Dim flag1 As Integer = 0
      flag1 = (From a In Model.trans_Event
               Where a.FK_id_contact = item.idContact And a.FK_id_Event = idEvent
               Select a.idtrans).Count()
      End Code

      @If flag1 = 0 Then
      <input type="button" value="add" />
      Else
      <input type="button" value="delete" />
      End If
 </td>
在此代码处(如果您没有复制/粘贴错误)

您试图获取一个->FK->id_事件,由于您的模型中没有FK对象,它将分解为null异常

查看应该是“a.FK_id_事件”的代码

编辑:

过滤模型中的集合时,我更喜欢

Model.trans_Event.Where(a => a.FK_id_contact == item.idContact && 
                             a.FK_id_Event == idEvent)

我犯了一个复制/粘贴错误(我会说法语,我会把所有的东西从法语翻译成英语,以便有一个尽可能容易理解的代码)。您的模型类将对解决方案有所帮助。您的回答帮助我理解了我的错误。我非常确定我没有正确使用“计数”,因此我没有进一步说明。事实上,我的问题是控制器内部没有将“trans_事件”表发送到视图。
a.FK.id_Event = idEvent
flag1 = (From a In Model.trans_Event
               Where a.FK_id_contact = item.idContact And a.FK_id_Event = idEvent
               Select a.idtrans).Count()
      End Code
Model.trans_Event.Where(a => a.FK_id_contact == item.idContact && 
                             a.FK_id_Event == idEvent)