Laden...

IF abfrage im mail.body

Erstellt von snicker vor 16 Jahren Letzter Beitrag vor 16 Jahren 2.208 Views
S
snicker Themenstarter:in
6 Beiträge seit 2008
vor 16 Jahren
IF abfrage im mail.body

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

    }


5.941 Beiträge seit 2005
vor 16 Jahren

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

S
snicker Themenstarter:in
6 Beiträge seit 2008
vor 16 Jahren

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 ?

458 Beiträge seit 2007
vor 16 Jahren

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!

1.433 Beiträge seit 2006
vor 16 Jahren

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

I
256 Beiträge seit 2005
vor 16 Jahren

hmm mich stört mal

CheckBox_Ja.Checked = true

Das ist eine Zuweisung, schreit da nicht der Compiler

184 Beiträge seit 2005
vor 16 Jahren

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();
S
snicker Themenstarter:in
6 Beiträge seit 2008
vor 16 Jahren

Hi,

dank euch alles für eure Hilfe und besonders SEYYEDI da es mit dem StringBuilder klappt.

mfg

Snicker

1.433 Beiträge seit 2006
vor 16 Jahren
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

B
114 Beiträge seit 2007
vor 16 Jahren

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