[英]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.