Erreur de compilation sur cette chaîne
-
05-07-2019 - |
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 &";
.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>"