你New line in constant
是因为你在没有告诉编译器你想要第二行的情况下打破了这条线。
有 3 种方法可以解决此问题:
- 不要断线
- 转义每个特殊字符
- 使用
@
符号做你想做的事
举个例子:
StringBuilder sb = new StringBuilder();
sb.Append("<html><table cellpadding='0' cellspacing='0' width='100%' align='center'>");
sb.Append("<tr><td><p>Dear " + user.UserName+ "</p><br>");
sb.Append("To verify your account, please click the following link:<span style='font-weight:bold;'>");
sb.Append("<a href='" + verifyUrl + "' target='http://localhost:51819'>" + verifyUrl + "</a></span> to complete your registration.<br>");
MailBody.Append(sb.ToString());
您还需要避免在字符串中混合使用单引号和双引号,想法是仅在内部使用单引号并使用双引号来分隔字符串。
您也可以@
在字符串前面使用 ,然后可以像这样换行:
MailBody.Append(
String.Format(
@"<html>
<table cellpadding='0' cellspacing='0' width='100%' align='center'>
<tr>
<td>
<p>Dear {0}</p>
To verify your account, please click the following link:
<span style='font-weight:bold;'>
<a href='{1}'>{1}</a>
</span> to complete your registration.
</td>
</tr>
</table>
</html>", user.UserName, verifyUrl));
我也曾经StringBuilder
避免在模板中包含变量,因为它使查看和编辑变得更加简单。
最后但并非最不重要的一点是,您应该对 HTML 有更多的了解......没有target="http://localhost:51819"
...