I am using html code inside a .cs file to design a template for sending emails. I have added style tag to the <a href>
tag, but it does not take effect when the email is actually sent.
Here is the code:
public static void Email()
{
StringBuilder sb= new StringBuilder();
sb.Append("<a href='#' style='font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:14px;color:#fff;text-decoration:none;line-height:2em;font-weight:bold;text-align:center;display:inline-block;border-radius:5px;text-transform:capitalize;background-color:#208ed5;margin:0;border-color:#208ed5;border-style:solid;border-width:10px 20px' target='_blank'>");
sb.Append("link</a>");
}
答案 0 :(得分:6)
使用反斜杠转义引号:
style=\"font-family:\'Helvetica Neue\',Helvetica,Arial,sans-serif;font-size:14px;color:#fff;text-decoration:none;line-height:2em;font-weight:bold;text-align:center;display:inline-block;border-radius:5px;text-transform:capitalize;background-color:#208ed5;margin:0;border-color:#208ed5;border-style:solid;border-width:10px 20px\"
答案 1 :(得分:3)
问题在于构建HTML字符串的方式......
在此代码中
"<a href='#' style='font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:14px;color:#fff;text-decoration:none;line-height:2em;font-weight:bold;text-align:center;display:inline-block;border-radius:5px;text-transform:capitalize;background-color:#208ed5;margin:0;border-color:#208ed5;border-style:solid;border-width:10px 20px' target='_blank'>"
style
属性将在此处style='font-family:'
停止,因为打开样式规则的单引号已关闭...因此,您的其他规则甚至不会被视为此样式的参数。
解决方案:您真的不需要将font-family值包装在引号中..您可以说style='font-family:Helvetica,Arial,sans-serif;
如果您的字体系列名称中包含空格,则必须将其包装在引号中。
编辑1:如果您的font-family名称包含空格,则需要将它们用引号括起来。所以您必须将Helvetica Neue
括在引号中。添加双引号并使用反斜杠转义其含义..如下所示..
style='font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;
答案 2 :(得分:1)
很简单,将.css文件中的样式定义为类,并在后端指定类。例如:
.css
sb.Append("<a href='#' class=' custom-style-a' .....>");
附加的html将是:
$query1 = "SELECT `user_id` FROM `it_user` WHERE (user_email_address = ? AND user_mobile_number_verified = NULL)";
$stmt1 = $mysqli->prepare($query1);
$stmt1->bind_param("s",$email);
$stmt1->execute();
if ($stmt1->affected_rows == 1) {
//set registration flag to 1 stating that the users mobile number is already verified
echo '<meta http-equiv="refresh" content="0; URL=\'../signin/\'"/>';
}
else
{
$registration_flag = 2;
//redirect user to error page
//echo '<meta http-equiv="refresh" content="0; URL=\'../error/\'"/>';
}
优点:
易于实现,以后可以轻松维护样式。不需要复杂的格式,如有必要,请重新使用样式。
答案 3 :(得分:1)
使用双引号但使用转义字符,如下所示:
sb.Append("<a href=\"#\" style=\"font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-size:14px;color:#fff;text-decoration:none;line-height:2em;font-weight:bold;text-align:center;display:inline-block;border-radius:5px;text-transform:capitalize;background-color:#208ed5;margin:0;border-color:#208ed5;border-style:solid;border-width:10px 20px\" target=\"_blank\">");
sb.Append("link</a>");
或者你总是可以使用旧的连接方式:
string sb = "<a href=\"#\" style=\"font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-size:14px;color:#fff;text-decoration:none;line-height:2em;font-weight:bold;text-align:center;display:inline-block;border-radius:5px;text-transform:capitalize;background-color:#208ed5;margin:0;border-color:#208ed5;border-style:solid;border-width:10px 20px\" target=\"_blank\">";
sb += "link</a>";
答案 4 :(得分:0)
您不能在单引号内嵌套单引号。您在'Helvetica Neue'
内使用style = '... 'Helvetica Neue' ...'
。你应该这样做style = "... 'Helvetica Neue' ..."
。“
此外,我看到你已经在锚元素周围有双引号,所以在样式之后直接添加双引号将是问题。在Bhojendro已经解释过之后,你必须在风格之后使用转义字符\"
而不是"
。