我正在ASP.NET C#中创建一个表单,因此可以填写并通过电子邮件发送给多个收件人。表单的一部分是带有多个选项的复选框部分。我只能选择通过电子邮件发送回收件人的第一个选项,因此如果用户选择两个或更多复选框,它只会通过电子邮件发送第一个选项。下面是我的代码表
SmtpClient smtpClient = new SmtpClient();
MailMessage message = new MailMessage();
MailAddress From = new MailAddress(mailTextBox.Text);
message.To.Add(new MailAddress("email@domain.com"));
message.Subject = (companyTextBox.Text);
message.IsBodyHtml = true;
message.Body = "<html><head></head><body>" +
"<p></p>" +
"<p>Business Type: " + typeDropDownList.Text + "</p>" +
"<p>Company: " + companyTextBox.Text + "</p>" +
"<p>Name: " + nameTextBox.Text + "</p>" +
"<p>Address: " + addressTextBox.Text + "</p>" +
"<p>City: " + cityTextBox.Text + "</p>" +
"<p>State: " + stateDropDownList.Text + "</p>" +
"<p>Zip Code: " + zipcodeTextBox.Text + "</p>" +
"<p>Phone Number: " + phoneTextBox.Text + "</p>" +
"<p>Email: " + mailTextBox.Text + "</p>" +
"<p>Number Of Locations: " + locationsDropDownList.Text + "</p>" +
**// This is my problem area //**
"<p>Interested In: " + interestedCheckBoxList.Text + "</p>" +
"<p>Interested In: " + interestedCheckBoxList.Text + "</p>" +
"<p>Interested In: " + interestedCheckBoxList.Text + "</p>" +
**// This is my problem area //**
"<p>Message: " + messageTextBox.Text + "</p>" +
"</body></html>";
smtpClient.Send(message);
Response.Redirect("http://www.domain.com");
提前谢谢。
吉姆
答案 0 :(得分:2)
您需要遍历CheckBoxList中的Items并单独添加它们。
示例:
foreach(ListItem li in interestedCheckBoxList.Items)
{
//add your stuff
if(li.Selected)
{
//should be using string builder here but....
message.Body += "<p>Interested In: " + li.Text + "</p>";
}
}
答案 1 :(得分:1)
您需要遍历CheckBoxList并找到所有选中的项目并获取每个项目的Text
属性,并附加到您的电子邮件文本。
string yourSelectedList = "";
foreach (ListItem i in chklst.Items)
{
if (i.Selected)
yourSelectedList += (i.Text + ", ");
}
然后删除最后的额外逗号:)
"<p>Interested In: " + yourSelectedList + "</p>" +
在将多个字符串连接在一起时尝试使用StringBuilder
,因为它会产生很大的不同。
答案 2 :(得分:0)
尝试使用以下内容替换“问题区域”中的代码:
string InterestedIn = "";
foreach (ListItem li in interestedCheckBoxList.Items)
{
if (li.Selected)
InterestedIn += "<p>Interested In: " + li.Text + "</p>";
}
当然,你不能将它作为原始字符串连接的一部分连接起来,所以构建一个“InterestedIn”字符串排序并将电子邮件正文连接起来。