Domanda

Sto cercando di creare la seguente stringa:

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

ma ricevo un errore di compilazione in VS che dice " Newline in costante "

È stato utile?

Soluzione

Il tuo problema è il tag di script di fine

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

Risolvilo con:

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

o forse

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

Utilizzare invece ClientScriptManager e utilizzare RegisterClientScriptInclude. In questo modo devi solo avere il nome del file in una stringa.

ClientScriptManager.RegisterClientScriptInclude

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

Altri suggerimenti

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

Beh, sì, hai una stringa contenente < / script > all'interno di < script > elemento. Questo chiude lo & Lt; script & Gt ;, quindi il codice che appare all'interno dello script runat-server è solo:

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

E come dice l'errore, che contiene una " stringa senza virgolette doppie terminanti.

Prova a sfuggire ai caratteri in modo che l'altro blocco di script non li veda come markup:

"\x3Cscript type='text/javascript' src='test.js'>\x3C/script>"
@"<script language="Javascript" src="/utility/thickbox/thickbox-custom.js"></script>"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top