0

次の関数を使用します。

Public Sub SendMail(ByVal SendFrom As String, ByVal SendTo As String, ByVal Subject As String, ByVal Body As String)

    Dim client As New SmtpClient
    Dim message As New MailMessage

    message.Body = Body
    message.Subject = Subject
    message.From = New MailAddress(SendFrom)
    message.To.Add(New MailAddress(SendTo))

    client.Port = "25"
    client.Host = "smtp.myserver.com"

    client.Send(message)

End Sub

私はそれを

Protected Sub btnSubmit_Click(sender As Object, e As System.EventArgs) Handles btnSubmit.Click

    Dim iandamsb As New StringBuilder

    iandamsb.AppendLine("Please make the following changes:")
    iandamsb.AppendLine("")
    iandamsb.AppendLine("Current name:" & txtCurrentName.Text)
    iandamsb.AppendLine("New name:" & txtNewName.Text)
    iandamsb.AppendLine("New username:" & txtNewUsername.Text)
    iandamsb.AppendLine("Applications:" & txtOtherApplications.Text)

    Dim iandambody As String = iandamsb.ToString

    SendMail(txtRequesterEmail.Text, "ayockel@mydomain.com", "Name Change Request - " & txtCurrentName.Text, iandambody)

End Sub

正常に動作しますが、1通ではなく2通のメールを送信しています。なぜ重複を送信しているのか誰かが理解できますか?

4

1 に答える 1

3

ボタンクリックイベントが2回バインドされていると思います。1はマークアップのOnClick属性を使用します。

<asp:Button OnClick="btnSubmit_Click" runat="server" ... />

そして再びコードビハインドを介してHandles

Protected Sub btnSubmit_Click(sender As Object, e As System.EventArgs) 
    Handles btnSubmit.Click

その場合は、そのうちの1つを削除します。btnSubmit_Clickイベントがコンパイル時に適切に配線されていることがわかるように、後者を保持します。

この問題の議論

于 2012-08-24T20:54:02.913 に答える