Pregunta

Estoy intentando crear la siguiente cadena:

<script runat="server" type="text/C#">
    protected void Page_Load(object sender, EventArgs e)
    {
        Parent.Page.ClientScript.RegisterStartupScript(typeof(Page), "test", "<script type='text/javascript' langauage='javascript' src='test.js'></script>");
    }
</script>

sin embargo, aparece un error de compilación en VS que dice " Newline en constante "

¿Fue útil?

Solución

Su problema es la etiqueta final del script

http://support.microsoft.com/kb/827420

Resuélvelo con:

".....<"+"/SCRIPT>"

o tal vez

".....<\/script>"

Use ClientScriptManager en su lugar y use RegisterClientScriptInclude. De esta manera solo necesita tener el nombre del archivo en una cadena.

ClientScriptManager.RegisterClientScriptInclude

ClientScriptManager scriptManager = new ClientScriptManager(); scriptManager.RegisterClientScriptInclude("filename.js");

Otros consejos

"<script type='text/javascript' langauage='javascript' src='test.js'></script>"

Bueno, sí, tienes una cadena que contiene < / script > dentro de < script > elemento. Eso cierra el & Lt; script & Gt ;, por lo que el código que parece estar dentro de su script runat-server es simplemente:

protected void Page_Load(object sender, EventArgs e)
{
    Parent.Page.ClientScript.RegisterStartupScript(typeof(Page), "test", "<script type='text/javascript' langauage='javascript' src='test.js'>

Y como dice el error, eso contiene una cadena " sin comillas dobles terminadas.

Intenta escapar de los caracteres para que el otro bloque de script no los vea como marcado:

"\x3Cscript type='text/javascript' src='test.js'>\x3C/script>"
@"<script language="Javascript" src="/utility/thickbox/thickbox-custom.js"></script>"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top