2016-04-25 7 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';色:green;幅: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' ..."

また、アンカー要素の周りに二重引用符を使用しているので、スタイルの後ろに直接二重引用符を追加することは控えめです。 Bhojendroがすでに説明したように、スタイルの後に"の代わりにエスケープ文字\"を使用する必要があります。

1

それは簡単です、クラスとしてあなたの.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*/ 
.... 
} 

の.cssおよび添付の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:'を停止しますルールは閉鎖されています...したがって、あなたの他のルールはこのスタイルにも考慮されません。

ソリューション:あなたは本当にあなたがそれにスペースをフォントファミリ名を持つすべてで、あなたがする必要がある場合、あなただけのstyle='font-family:Helvetica,Arial,sans-serif;

を言うことができます。..引用符でのfont-familyの値をラップする必要がいけません引用符で囲みます。


編集1:もしあなたのフォントファミリ名では..あなたが引用符でそれらをラップする必要があるスペースが含まれているので、あなたは引用符で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>"; 
関連する問題