2012-02-23 8 views
5

Quiero definir una cadena larga y usarla como parámetro en una clase auxiliar.Definición de una cadena larga en Razor

Tengo el siguiente código que no compile

@{ 
var code =" 
new TEL_Helper 
{ 
    URI = "[email protected]", 
    Type = TEL_TelecomType.Email, 
    Use = TEL_TelecomUse.VacationHome 
}" 

Html.SyntaxXML(code) 
} 

¿Cómo se define la cadena que se extiende por varias líneas y tiene saltos de línea.

y la solución que utilicé fue:

@{ 
var code [email protected]" 
new TEL_Helper 
{ 
    URI = '[email protected]', 
    Type = TEL_TelecomType.Email, 
    Use = TEL_TelecomUse.VacationHome 
}"; 

Html.SyntaxXML(code); 
} 

Respuesta

7

Usted está buscando el estándar de C# textualmente cadena literal.

  var code = @" 
new TEL_Helper 
{ 
    URI = ""[email protected]"", 
    Type = TEL_TelecomType.Email, 
    Use = TEL_TelecomUse.VacationHome 
}" 
+0

Lo intenté, todavía intenta hacer coincidir el "}" en la definición de cadena con la apertura "{" en el bloque de código. –

+0

@BENBUNCoder: Entonces estás cometiendo un error en alguna parte; Razor apoya esto. Verifique sus citas anidadas. – SLaks

+0

@BENBUNCoder CUANDO use la sintaxis @ verbatim, las comillas anidadas en su cadena deben escaparse utilizando un segundo ", de modo que en el ejemplo de SLaks debe hacer" "[email protected]" "como muestra – Dismissile

0

Sólo romper la cadena a cabo en trozos y concatenar:

@{ 
    var code = 
     "new TEL_Helper " + 
     "{ " + 
      "URI = \"[email protected]\"," + 
     "}"; 
} 

No se olvide de escapar de sus cotizaciones dentro de la cadena.

+1

yuk. Supongo que responde a la pregunta, pero es muy engorroso. Hace que copiar/pegar de otras fuentes sea imposible (pero no -1) – ekkis

Cuestiones relacionadas