2016-07-15 11 views
0

Ich habe ein E-Mail-Formular mit zwei Gruppen von HTML checkboxes. Ich sammle die Werte und setze sie in ihre eigenen Strings _docValues und _vidValues. Dieses Formular sendet jedoch nur, wenn ich ein Kontrollkästchen für jede der Gruppen aktivieren. Wenn ich etwas von _docValues nicht wählen, es gibt mir eine Fehlermeldung:C# asp E-Mail-Formular - Kontrollkästchen zurückgeben als null und wird nicht gesendet

Value cannot be null

Wie ordne ich es Wert, auch wenn es nur ein weißer Raum?

+0

Warum nicht Sie eine Standard-Kontrollkästchen Auswahl geben. Und wenn der Benutzer möchte, kann er die Werte ändern. –

+0

Wenn Sie entweder einen Standardwert in "_docValues" mit einem Nullkoaleszenzoperator festlegen oder ein Kontrollkästchen in der Gruppe '_docValues' als 'ausgewählt' markieren, kann das Problem möglicherweise behoben werden. –

+0

Ja, ich habe versucht, eine "versteckte" Checkbox hinzuzufügen, die immer für beide Gruppen überprüft wird, und während das funktioniert, stoße ich auf das Problem, dieses versteckte Kontrollkästchen nicht vollständig zu verstecken, weil ich einen Ausdruck der Werte vor der E-Mail sende . Ich bin mir nicht sicher, wie man einen Null-Koaleszenz-Operator macht, da ich ziemlich neu mit C# bin. – rkiley

Antwort

0
protected void btnSend_Click(object sender, EventArgs e) 
{ 
    if (Request.Form.GetValues("sendme") != null && Request.Form.GetValues("vidsend") != null) 
    { 
     string _docValues = String.Join("<br>", Request.Form.GetValues("sendme")); 
     string _vidValues = String.Join("<br>", Request.Form.GetValues("vidsend")); 
    } 
    else 
    { 
     string _docValues = ""; 
     string _vidValues = ""; 
    } 
} 
+0

Er muss immer noch beide Fragen beantworten, damit etwas passiert. Besser, jeden einzeln zu überprüfen. –

+0

Oh nein wie zerstreut von mir. Nun, du hast sowieso schon geantwortet. Danke fürs bemerken! tat –

0
protected string _docValues = string.Empty; 
protected string _vidValues = string.Empty; 

protected void btnSend_Click(object sender, EventArgs e) 
{ 
    if (Request.Form["sendme"] != null) 
     _docValues = String.Join("<br>", Request.Form.GetValues("sendme")); 

    if (Request.Form["vidsend"] != null) 
     _vidValues = String.Join("<br>", Request.Form.GetValues("vidsend")); 
} 
+0

ich dieses versuchen, aber ich habe einen Fehler später für 'String body = this.createEmailBody (_recipient, _sender, _message, _docValues, _vidValues);' Der Name '_docValues' existiert nicht in der aktuellen context – rkiley

+0

Stellen Sie stattdessen die Zeichenfolgeneigenschaften der Seite her, damit Sie auf sie außerhalb des Ereignishandlers zugreifen können. Ich habe den Code geändert. –