2016-04-25 55 views
6

我使用.cs文件中的html代碼來設計用於發送電子郵件的模板。我已將樣式標籤添加到<a href>標籤,但在電子郵件實際發送時不會生效。 這裏是代碼:將樣式應用於<a href>放置在C#代碼中的標籤

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

我認爲你應該使用雙樣式屬性之後的引號,例如'style =「font-family:'Helvetica Neue'; color:green; width:100px;」'。 – user31782

+2

字符串格式化問題 –

+0

@Reddy是字符串格式化問題,謝謝指出。我刪除了「Helvetica Neue」周圍的單引號,現在它工作正常。謝謝 – sumedha

回答

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\" 
0

你不能在單引號內嵌入單引號。您在style = '... 'Helvetica Neue' ...'內部使用'Helvetica Neue'。你應該這樣做style = "... 'Helvetica Neue' ..."。'

另外,我看到你已經有了雙引號圍繞錨元素,因此在樣式之後直接添加雙引號將是problamatic。在Bhojendro已經解釋過的風格之後,您必須使用轉義字符\"而不是"

1

很簡單,定義你的.css文件作爲類的風格和這裏的後端分配類。例如:

的.css

.custom-style-a { 
font-family:"Helvetica Neue Helvetica,Arial,sans-serif"; 
font-size:14px; 
color:#fff; 
text-decoration:none; 
line-height:2em; 
/*rest of styles here*/ 
.... 
} 

和附加的HTML將是:

sb.Append("<a href='#' class=' custom-style-a' .....>"); 

優點:

實現簡單,可以很容易地保持風格的版本。不需要複雜的格式,如果需要的話重新使用樣式。

+0

他正在建立一個電子郵件模板..如果你使用類,你將如何渲染樣式? –

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:'因爲這將打開樣式單引號規則是封閉的...因此,你的其他規則甚至不考慮到這種風格的arrtibute。

解決方案:你真的不需要包裝在引號FONT-FAMILY值..你就可以說style='font-family:Helvetica,Arial,sans-serif;

如果你有一個FONT-FAMILY名與它的空間,那麼你必須用引號括起來。


編輯1:如果您FONT-FAMILY名稱包含你需要用他們的報價空間。所以,你必須包裹Helvetica Neue引號。添加一個雙引號並使用反斜槓轉義它的意思..就像下面..

style='font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif;

+2

'Helvetica Neue'字體將被忽略。因爲具有空間的字體系列名稱需要引用。 –

+1

@BhojendraNepal是的謝謝..我注意到了。我會更新 –

+0

@BhojendraNepal是的你是對的 – sumedha

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>";