Hallo,
habe folgendes Problem hoffe ihr könnt mir helfen. Verschicke Daten aus einem Webformular per Mail das geht auch alles nur brauche ich da auch IF Abfragen die z.b. abfragen ob die Checkbox aktiv und die Daten mitgeschickt werden sollen oder nicht. Nur das klappt nicht so wie ich es mir vorstelle. Es kommt der Fehler Ungültiger Ausdruck "IF".
Hier ein ausschnitt aus dem Code, hoffe ihr blickt da durch .
protected void Wizard1_FinishButtonClick(object sender, WizardNavigationEventArgs e)
{
MailMessage mail = new MailMessage();
mail.From = new MailAddress("**");
mail.To.Add("**");
mail.Subject = "Testmail";
mail.IsBodyHtml = true;
mail.Body = "<table border=0 width=500><tr><td>Veranlasser</td><td>" + TextBox_Veranlasser.Text + "</td></tr>" +
"<tr><td>Nachname</td><td>" + TextBox_Anforderung_Nachname.Text + "</td></tr>" +
"<tr><td>Vorname</td><td>" + TextBox_Anforderung_Vorname.Text + "</td></tr>" +
"<tr><td>Gebäude</td><td>" + TextBox_Benutzer_Gebaude.Text + "</td></tr>" +
if(CheckBox_Ja.Checked = true)
{
"<tr><td>Gebäude</td><td>" + TextBox_Benutzer_Gebaude.Text + "</td></tr>"
}
else
{
"Keine Daten"
}+
"<tr><td>Vorname</td><td>" + TextBox_Anforderung_Vorname.Text + "</td></tr>";
SmtpClient smtp = new SmtpClient("**");
smtp.Send(mail);
}
Hallo snicker
Du musst die Strings richtig verketten.
Konstrukte wie if... gehören nicht in einen String verknüpft.
Gruss Peter
--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011
Danke für die schnelle Antwort, habe mir auch schon gedacht dass es so nicht richtig sein kann. Aber wie mache ich das jetzt mit den IF Abfragen. Will alles in einer Mail verschicken und dem Mail.Body kann ich doch nur einen String zuweisen oder ?
Hallo snicker,
mach doch ein
protected void Wizard1_FinishButtonClick(object sender, WizardNavigationEventArgs e)
{
MailMessage mail = new MailMessage();
mail.From = new MailAddress("**");
mail.To.Add("**");
mail.Subject = "Testmail";
mail.IsBodyHtml = true;
if(CheckBox_Ja.Checked = true)
{
mail.Body = "blablubb";
}
else
{
mail.Body = "Keine Daten";
}
SmtpClient smtp = new SmtpClient("**");
smtp.Send(mail);
}
Gruß aequitas
be the hammer, not the nail!
Wie wärs damit? (ungetestet)
protected void Wizard1_FinishButtonClick(object sender, WizardNavigationEventArgs e)
{
string mailBodyAllData = string.Empty;
string mailBodyNoData = string.Empty;
MailMessage mail = new MailMessage();
mail.From = new MailAddress("**");
mail.To.Add("**");
mail.Subject = "Testmail";
mail.IsBodyHtml = true;
switch(CheckBox_Ja.Checked == true){
case false:
mailBodyAllData = TextBox_Anforderung_Vorname.Text +
TextBox_Anforderung_Vorname.Text +
TextBox_Anforderung_Vorname.Text +
TextBox_Benutzer_Gebaude.Text +
TextBox_Benutzer_Gebaude.Text;
break;
default:
mailBodyNoData = TextBox_Anforderung_Vorname.Text + "Keine Daten";
break;
}
SmtpClient smtp = new SmtpClient("**");
smtp.Send(mail);
}
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt
hmm mich stört mal
CheckBox_Ja.Checked = true
Das ist eine Zuweisung, schreit da nicht der Compiler
Für sowas bietet sich der StringBuilder an (System.Text.StringBuilder).
StringBuilder sbMail = new StringBuilder();
sbMail.Append(TextBox_Anforderung_Vorname.Text);
...
if (...)
{
sbMail.Append(TextBox_Benutzer_Gebaude.Text);
}
...
mail.Body = sbMail.ToString();
Hi,
dank euch alles für eure Hilfe und besonders SEYYEDI da es mit dem StringBuilder klappt.
mfg
Snicker
CheckBox_Ja.Checked = true
Das ist eine Zuweisung, schreit da nicht der Compiler
Wo Du recht hast, hast Du recht (war ein bisschen schluderig meinerseits, sorry )
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt
Sowas hab ich auch noch nicht gesehen. Nen switch-case auf nen boolean !
Denk mal Stringbuilder ist schon das beste, wobei auch eine verkürzte conditional-Abfrage das Seinige tun sollte. Sieht allerdings schnell unübersichtlich aus wenns mehrere oder gar innere Abfragen werden sollen.
(checkBox1.Checked ? "text A" : "text B")