Question

J'essaie de créer la chaîne suivante:

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

Pourtant, une erreur de compilation apparaît dans VS indiquant & "Newline in constant &";

.
Était-ce utile?

La solution

Votre problème est la balise de script de fin

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

Résolvez-le avec:

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

ou peut-être

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

Utilisez plutôt ClientScriptManager, puis utilisez RegisterClientScriptInclude. De cette façon, vous n'avez besoin que du nom de fichier dans une chaîne.

ClientScriptManager.RegisterClientScriptInclude

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

Autres conseils

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

Eh bien oui, vous avez une chaîne contenant < / script > dans un < script > élément. Cela ferme le & Lt; script & Gt ;, extérieur. Le code qui semble se trouver dans votre script runat-server est donc juste:

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

Et comme le dit l’erreur, il contient une chaîne & "; sans citation double.

Essayez d'échapper les caractères pour que l'autre bloc de script ne les voie pas comme des balises:

"\x3Cscript type='text/javascript' src='test.js'>\x3C/script>"
@"<script language="Javascript" src="/utility/thickbox/thickbox-custom.js"></script>"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top