C#发送带有html链接到文件的电子邮件 - 无法识别的转义序列

时间:2014-03-04 10:50:03

标签: c# html

我有一个发送电子邮件的C#应用​​程序。我希望在邮件中发送一个链接,供用户点击并打开文件。

但是,如果我有链接到我的工作簿,我就会遇到问题。我有5个错误,都是“无法识别的转义序列”,其中每个“/”都是。我如何解决这个问题?

string htmlHeader = "<table style='font-size: 12pt;'>" +
            "<tr><a href='file:///G:\Shared\Team\New\Corporate%20Actions\Corp%20Events.xlsx'>Corp Events Workbook></tr><tr/><tr/>" +
            "<tr><th align='left'>Status</th><th>&nbsp;</th>" +
            "<th align='left'>Sedol</th><th>&nbsp;</th>" + 
            "<th align='left'>Name</th><th>&nbsp;</th>" + 
            "<th align='left'>Date Effective</th><th>&nbsp;</th>" + 
            "<th align='left'>Event Code</th><th>&nbsp;</th>" + 
            "<th align='left'>Terms</th><th>&nbsp;</th></tr>";

2 个答案:

答案 0 :(得分:6)

C#使用字母\后跟另一个字母来转义字符,例如:换行符:\n。由于C#中没有\S转义字符(请参见此处的列表:http://msdn.microsoft.com/en-us/library/h21280bw.aspx),编译器无法对其进行解析。要解决它们\\,转义后跟反斜杠,以便编译器知道你打算打印\

〔实施例:

string htmlHeader = "<table style='font-size: 12pt;'>" +
            "<tr><a href='file:///G:\\Shared\\Team\\New\\Corporate%20Actions\\Corp%20Events.xlsx'>Corp Events Workbook></tr><tr/><tr/>" +
            "<tr><th align='left'>Status</th><th>&nbsp;</th>" +
            "<th align='left'>Sedol</th><th>&nbsp;</th>" + 
            "<th align='left'>Name</th><th>&nbsp;</th>" + 
            "<th align='left'>Date Effective</th><th>&nbsp;</th>" + 
            "<th align='left'>Event Code</th><th>&nbsp;</th>" + 
            "<th align='left'>Terms</th><th>&nbsp;</th></tr>";

注意第二行,在路径部分,有一个双左反斜杠而不是一个。

答案 1 :(得分:2)

尝试在包含转义序列的字符串(部分)前添加@ 像:

string htmlHeader = "<table style='font-size: 12pt;'>" +
        @"<tr><a href='file:///G:\Shared\Team\New\Corporate%20Actions\Corp%20Events.xlsx'>Corp Events Workbook></tr><tr/><tr/>" +
        "<tr><th align='left'>Status</th><th>&nbsp;</th>" +
        "<th align='left'>Sedol</th><th>&nbsp;</th>" + 
        "<th align='left'>Name</th><th>&nbsp;</th>" + 
        "<th align='left'>Date Effective</th><th>&nbsp;</th>" + 
        "<th align='left'>Event Code</th><th>&nbsp;</th>" + 
        "<th align='left'>Terms</th><th>&nbsp;</th></tr>";

不是最干净的解决方案,但它是一个有效的解决方案。我建议您查看UnTraDe响应。