2016-04-25 11 views
6

Sto utilizzando il codice html all'interno di un file .cs per progettare un modello per l'invio di e-mail. Ho aggiunto un tag di stile al tag <a href>, ma non ha effetto quando l'email viene effettivamente inviata. ecco il codice:Applicazione dello stile al tag <a href> inserito nel codice 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

penso che si dovrebbe utilizzare il doppio citazioni dopo stile attribuiscono, ad es 'style =" font-family: 'Helvetica Neue'; color: green; width: 100px; "'. – user31782

+2

problema di formatura stringa –

+0

@Reddy yes problema di formatura stringa, grazie per averlo indicato. Ho rimosso le virgolette singole intorno a "Helvetica Neue" e ora funziona bene. Grazie – sumedha

risposta

6

sfuggire alle citazioni con backslash:

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

Non è possibile annidare virgolette singole all'interno di virgolette singole. Si utilizza 'Helvetica Neue' all'interno di style = '... 'Helvetica Neue' ...'.

Anche io vedo che si hanno già virgolette doppie attorno all'elemento di ancoraggio, quindi aggiungere direttamente virgolette doppie dopo lo stile sarà problamatico. Dovrai usare il carattere di escape \" invece di " dopo lo stile come già spiegato da Bhojendro.

1

E 'semplice, definire lo stile nel file css di classe e assegnare classe qui nel back-end. Esempio:

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*/ 
.... 
} 

E html allegato sarà:

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

Vantaggi:

semplice da realizzare, può facilmente mantenere stili tardi. Non è richiesta alcuna formattazione complessa, riutilizzare gli stili se necessario.

+0

Sta costruendo un modello di email .. Se usi la classe come renderesti gli stili ?? –

3

Il problema è con il modo in cui avete costruito la vostra stringa HTML ...

In questo codice

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

L'attributo style si fermerà qui style='font-family:' poiché le virgolette singole che apre lo stile le regole sono chiuse ... Quindi le tue altre regole non sono nemmeno considerate in questo stile arrtato.

Soluzione: È davvero non hanno bisogno di avvolgere i valori font-family tra virgolette .. si può solo dire style='font-family:Helvetica,Arial,sans-serif;

Se a tutto si dispone di un nome font-family con spazi in esso poi si deve inseriscilo tra virgolette.


Edit 1: Se il tuo nome font-family contiene spazio necessario per avvolgerli tra virgolette .. Così si deve avvolgere il Helvetica Neue tra virgolette. Aggiungi una doppia citazione e sfuggi al suo significato usando la barra rovesciata .. Come di seguito ..

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

+2

Il carattere 'Helvetica Neue' verrà ignorato. Perché il nome della famiglia di caratteri con spazio richiede una citazione. –

+1

@BhojendraNepal Sì grazie .. L'ho notato. Aggiornerò –

+0

@BhojendraNepal si hai ragione – sumedha

1

Utilizzare le virgolette doppie, ma con caratteri di escape, così:

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

Oppure si può sempre utilizzare il vecchio modo di concatenare:

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