【问题标题】:check if a line exists in DB before displaying "add" button在显示“添加”按钮之前检查数据库中是否存在一行
【发布时间】:2012-04-05 08:44:13
【问题描述】:

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

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

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

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

这是我的看法:

 <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>

这样的代码不起作用,我真的不知道如何检查联系人是否已添加。这是我得到的错误:

    Exception Details: System.ArgumentNullException: Value cannot be null.
    Parameter name: source

【问题讨论】:

    标签: .net vb.net asp.net-mvc-3 linq razor


    【解决方案1】:

    在此代码处(如果您没有犯复制/粘贴错误)

    a.FK.id_Event = idEvent
    

    您正在尝试获取 -> FK -> id_event,并且由于您的模型中没有 FK 对象,因此它分解为空异常。

    查看应为“a.FK_id_Event”的代码

    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)
    

    【讨论】:

    • 我犯了一个复制/粘贴错误(我说法语,我把所有的东西都从法语翻译成英语,以使代码尽可能容易理解)。
    • 您的模型类将有助于解决方案
    • 你的回答帮助我理解了我的错。我很确定我没有正确使用“计数”,所以我没有进一步。事实上,我的问题在于控制器内部没有将“trans_Event”表发送到视图。
    猜你喜欢
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-26
    • 1970-01-01
    相关资源
    最近更新 更多