[英]ASP.NET Input string was not in a correct format
我制作了一个控件,用于创建活动的电子邀请。 用户将他们的信息输入到文本框中,然后系统收集该信息,将其添加到电子邮件的HTML中,然后发送。
合并所有部分时遇到错误。 我的代码如下。
protected void Button1_Click(object sender, EventArgs e)
{
SmtpClient smtpClient = new SmtpClient();
MailMessage message = new MailMessage();
MailAddress fromAddress = new MailAddress(YourEmailBox.Text, YourNameBox.Text);
message.From = fromAddress;
message.To.Add(FriendEmailBox.Text);
message.Subject = EmailSubject;
message.IsBodyHtml = true;
message.Body = "<html>" + string.Format(EmailBody, YourNameBox.Text, PersonalNoteBox.Text) + "</html>";
smtpClient.Send(message);
YourNameBox.Text = YourEmailBox.Text = FriendNameBox.Text = FriendEmailBox.Text = PersonalNoteBox.Text = string.Empty;
Label1.Text = "Email Successfully sent!";
}
这使我输入的字符串在此行上的格式错误不正确:
message.Body = "<html>" + string.Format(EmailBody, YourNameBox.Text, PersonalNoteBox.Text) + "</body></html>";
你能帮帮我吗?
为什么不做:
message.Body = string.Format("<html>{0}</html>",EmailBody.Text)
我不明白为什么要将3个参数传递给string.Format,例如"<html>" + string.Format("3","4","5") + "</html>"
将产生
<html>3</html>
应该是这个吗?
message.Body = "<html>" + string.Format(EmailBody.Text, YourNameBox.Text, PersonalNoteBox.Text) + "</html>";
(假设EmailBody是某种基于文本的控件,则将.Text添加到EmailBody中)
XaiSoft指出您使用的string.Format()
错误,请替换:
message.Body = "<html>" + string.Format(EmailBody, YourNameBox.Text, PersonalNoteBox.Text) + "</html>";
带有:
message.Body = string.Format(@"<html>{0}<br /><br />{1}<br /><br />{2}</html>",
EmailBody, YourNameBox.Text, PersonalNoteBox.Text)
如果YourNameBox.Text
和PersonalNoteBox.Text
是可选的,则在电子邮件末尾只会有4个额外的换行符。 如果这是一个问题,您也可以始终这样做:
var name = string.IsNullOrEmpty(YourNameBox.Text)
? string.Empty
: string.Format(@"<br /><br />{0}", YourNameBox.Text);
var personalNote = string.IsNullOrEmpty(YourNameBox.Text)
? string.Empty
: string.Format(@"<br /><br />{0}", PersonalNoteBox.Text);
message.Body = string.Format(@"<html>{0}{1}{2}</html>", EmailBody, name, personalNote);
编辑
另外,请注意格式字符串中使用的@
符号。 这会将您的字符串视为文字,而忽略任何也会引起问题的转义字符。
就我而言,String.Replace是替换insiode html字符串中唯一适用于我的东西。
”
{0}”。替换(“ {0}”,您的值)
我猜想, EmailBody
变量不包含的格式项正确数量string.Format
工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.