2017-01-10 4 views
0

私はASPXのWebサイトに「お問い合わせ」フォームを作成しました。現時点では、2つのセクションがあります:1つは一般的なフィードバック、もう1つはイベントの詳細を入力することができます&管理者の電子メールにそれらを送信します。複数のフィールドセットがあり、1つのフォームに別々のアクションボタンがありますが、コードビハインドは両方とも実行されています

ユーザーがこれらのセクションのいずれかを入力すると、&が関連する送信ボタンをクリックします。すべてのフィールドが有効であれば、入力したデータは管理者メールに送信されます。

これらのセクション/フィールドセットのいずれかを削除すると、残りのフィールドセットは完全に動作し、電子メールが送信されます。

ただし、両方のフィールドセットが含まれている場合(下記を参照)、このエラーが発生しています。ここで

は私のASPXです:

<div class="row"> 
      <div class="col-md-4"> 
       <h3>General Feedback</h3> 
       <fieldset> 
        <div class="control-group form-group"> 
         <div class="controls"> 
          <table> 
           <tr> 
            <td> 
             <b>Name:</b> 
            </td> 
            <td> 
             <asp:TextBox ID="txtName" Width="200px" CssClass="form-control" runat="server"></asp:TextBox> 
            </td> 
            <td> 
             <asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" 
              ErrorMessage="Name is required" ControlToValidate="txtName" 
              Text="*" ForeColor="Red"></asp:RequiredFieldValidator> 
            </td> 
           </tr> 
           <tr> 
            <td> 
             <b>Email:</b> 
            </td> 
            <td> 
             <asp:TextBox ID="txtEmail" Width="200px" CssClass="form-control" runat="server"></asp:TextBox> 
            </td> 
            <td> 
             <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" 
              ErrorMessage="Email is required" ControlToValidate="txtEmail" 
              Display="Dynamic" Text="*" ForeColor="Red"></asp:RequiredFieldValidator> 
             <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
              ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ErrorMessage="Please enter a valid email" 
              ControlToValidate="txtEmail" ForeColor="Red">*</asp:RegularExpressionValidator> 
            </td> 
           </tr> 
           <tr> 
            <td> 
             <b>Subject:</b> 
            </td> 
            <td> 
             <asp:TextBox ID="txtSubject" Width="200px" CssClass="form-control" runat="server"></asp:TextBox> 
            </td> 
            <td> 
             <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
              ErrorMessage="Subject is required" ControlToValidate="txtSubject" 
              Display="Dynamic" Text="*" ForeColor="Red"></asp:RequiredFieldValidator> 
            </td> 
           </tr> 
           <tr> 
            <td style="vertical-align: top"> 
             <b>Comments:</b> 
            </td> 
            <td> 
             <asp:TextBox ID="txtComments" Width="200px" CssClass="form-control" runat="server" Rows="5" TextMode="MultiLine"></asp:TextBox> 
            </td> 
            <td style="vertical-align: top"> 
             <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
              ErrorMessage="Comments are required" ControlToValidate="txtComments" 
              Text="*" ForeColor="Red"></asp:RequiredFieldValidator> 
            </td> 
           </tr> 
          </table> 
         </div> 
        </div> 

        <div id="success"> 

         <asp:Button ID="btnSendFeedback" CssClass="btn btn-primary" runat="server" Text="Submit" OnClick="btnSendFeedback_Click" /> 
         <asp:ValidationSummary HeaderText="Please fix the following errors" ForeColor="Red" ID="ValidationSummary2" runat="server" /> 
         <asp:Label ID="Label1" runat="server" Font-Bold="true"></asp:Label> 
        </div> 

       </fieldset> 

      </div> 
      <!--SUGGEST EVENT COLUMN--> 
      <div class="col-md-4"> 
       <h3>Suggest an Event</h3> 
       <fieldset> 
        <div class="control-group form-group"> 
         <div class="controls"> 
          <table> 
           <tr> 
            <td> 
             <b>Name:</b> 
            </td> 
            <td> 
             <asp:TextBox ID="txtNameEventSuggestor" Width="200px" CssClass="form-control" runat="server"></asp:TextBox> 
            </td> 
            <td> 
             <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
              ErrorMessage="Name is required" ControlToValidate="txtNameEventSuggestor" 
              Text="*" ForeColor="Red"></asp:RequiredFieldValidator> 
            </td> 
           </tr> 
           <tr> 
            <td> 
             <b>Email:</b> 
            </td> 
            <td> 
             <asp:TextBox ID="txtEmailEventSuggestor" Width="200px" CssClass="form-control" runat="server"></asp:TextBox> 
            </td> 
            <td> 
             <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" 
              ErrorMessage="Email is required" ControlToValidate="txtEmailEventSuggestor" 
              Display="Dynamic" Text="*" ForeColor="Red"></asp:RequiredFieldValidator> 
             <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" 
              ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ErrorMessage="Please enter a valid email" 
              ControlToValidate="txtEmailEventSuggestor" ForeColor="Red">*</asp:RegularExpressionValidator> 
            </td> 
           </tr> 
           <tr> 
            <td> 
             <b>Event Title:</b> 
            </td> 
            <td> 
             <asp:TextBox ID="txtEventTitle" Width="200px" CssClass="form-control" runat="server"></asp:TextBox> 
            </td> 
            <td> 
             <asp:RequiredFieldValidator ID="RequiredFieldValidator7" runat="server" 
              ErrorMessage="Subject is required" ControlToValidate="txtEventTitle" 
              Display="Dynamic" Text="*" ForeColor="Red"></asp:RequiredFieldValidator> 
            </td> 
           </tr> 
           <tr> 
            <td style="vertical-align: top"> 
             <b>Event Description:</b> 
            </td> 
            <td> 
             <asp:TextBox ID="txtEventDescription" Width="200px" CssClass="form-control" runat="server" Rows="5" TextMode="MultiLine"></asp:TextBox> 
            </td> 
            <td style="vertical-align: top"> 
             <asp:RequiredFieldValidator ID="RequiredFieldValidator8" runat="server" 
              ErrorMessage="Comments are required" ControlToValidate="txtEventDescription" 
              Text="*" ForeColor="Red"></asp:RequiredFieldValidator> 
            </td> 
           </tr> 
          </table> 
         </div> 
        </div> 
        <div id="suggestEventSubmit"> 
         <asp:Button ID="btnSubmitEventSuggestion" CssClass="btn btn-primary" runat="server" Text="Submit" OnClick="btnSubmitEventSuggestion_Click" /> 
         <asp:ValidationSummary HeaderText="Please fix the following errors" ForeColor="Red" ID="ValidationSummary1" runat="server" /> 
         <asp:Label ID="Label2" runat="server" Font-Bold="true"></asp:Label> 
        </div> 
       </fieldset> 
      </div> 
     </div> 

このコードは次のように表示されます。 snip1

そして、ここでは私のコードビハインドである:

protected void btnSendFeedback_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     if (Page.IsValid) 
     { 
      MailMessage mailMessage = new MailMessage(); 
      mailMessage.From = new MailAddress("[email protected]"); //txtEmail.Text.ToString() 
      mailMessage.To.Add("[email protected]"); //can have multiple here 
      mailMessage.Subject = txtSubject.Text; 
      mailMessage.Body = "<b>Sender Name:</b>" + txtName.Text + "<br/>" 
       + "<b>Sender Email:</b>" + txtEmail.Text + "<br/>" 
       + "<b>Comments:</b>" + txtComments.Text; 

      //for the HTML tags mentioned in the body above 
      mailMessage.IsBodyHtml = true; 


      //IN THE TUTORIAL, HE IS USING GMAIL'S SMTP SERVER: 
      SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587); 
      smtpClient.EnableSsl = true; 
      smtpClient.Credentials = 
       new System.Net.NetworkCredential("[email protected]", "PASSWORD"); 
      smtpClient.Send(mailMessage); 

      Label1.Text = "Thank you for contacting us"; 
      Label1.ForeColor = System.Drawing.Color.Blue; 
      txtName.Enabled = false; 
      txtEmail.Enabled = false; 
      txtComments.Enabled = false; 
      txtSubject.Enabled = false; 
      btnSendFeedback.Enabled = false; 
     } 


    } 
    catch (Exception ex) 
    { 
     // Log - Event Viewer or table 
     Label1.ForeColor = System.Drawing.Color.Red; 
     Label1.Text = "There is an unknown problem. Please try later"; 

    } 
} 



protected void btnSubmitEventSuggestion_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     if (Page.IsValid) 
     { 
      MailMessage mailMessage = new MailMessage(); 
      mailMessage.From = new MailAddress("[email protected]"); //txtEmail.Text.ToString() 
      mailMessage.To.Add("[email protected]"); //can have multiple here 
      mailMessage.Subject = "Suggested Event Title: " + txtEventTitle.Text; 
      mailMessage.Body = "<b>Sender Name:</b>" + txtNameEventSuggestor.Text + "<br/>" + "<br/>" 
       + "<b>Sender Email:</b>" + txtEmailEventSuggestor.Text + "<br/>" + "<br/>" 
       + "<b>Comments:</b>" + txtEventDescription.Text; 

      //for the HTML tags mentioned in the body above 
      mailMessage.IsBodyHtml = true; 


      //IN THE TUTORIAL, HE IS USING GMAIL'S SMTP SERVER: 
      SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587); 
      smtpClient.EnableSsl = true; 
      smtpClient.Credentials = 
       new System.Net.NetworkCredential("[email protected]", "PASSWORD"); 
      smtpClient.Send(mailMessage); 

      Label2.Text = "Thank you for contacting us"; 
      Label2.ForeColor = System.Drawing.Color.Blue; 
      txtNameEventSuggestor.Enabled = false; 
      txtEmailEventSuggestor.Enabled = false; 
      txtEventDescription.Enabled = false; 
      txtEventTitle.Enabled = false; 
      btnSubmitEventSuggestion.Enabled = false; 
     } 


    } 
    catch (Exception ex) 
    { 
     // Log - Event Viewer or table 
     Label2.ForeColor = System.Drawing.Color.Red; 
     Label2.Text = "There is an unknown problem. Please try later"; 

    } 
} 

私はfieldsetのうちの1枚を取り外した場合&対応するコードビハインド、残りのコードは完全に実行され、電子メールが送信されます。

両方のフィールドセットがあり、そして私が正しくつのセクションに必要事項を記入する場合しかし、これは何が起こるかです:

snp2

、誰もが何が起こっているかのように私を知らせることができ、そしてどのように私はそれを防ぐことができます?あなたはValidationGroup

<asp:RequiredFieldValidator ID="RequiredFieldValidator6" ValidationGroup="form1" runat="server" ErrorMessage="Name is required" ControlToValidate="txtName" Text="*" ForeColor="Red"></asp:RequiredFieldValidator> 

し、正しいボタンに同様

<asp:Button ID="btnSendFeedback" ValidationGroup="form1" CssClass="btn btn-primary" runat="server" Text="Submit" OnClick="btnSendFeedback_Click" /> 

異なるが、すべてのバリデータにこれを行い、第二の形でのものと、ボタンを与えるの使用を開始する必要が

答えて

1

グループ名。その後、ボタンをクリックすると、そのグループにのみ検証が適用されます。

関連する問題