/ / Script non inséré lors du chargement de la page - c #, javascript, html, asp.net, json

Script non inséré lors du chargement de la page - c #, javascript, html, asp.net, json

Je travaille sur une simulation de classe où je dois simuler l'extraction de données d'une base de données et leur envoi dans un délai de json array javascript. Cependant, je ne peux pas le faire fonctionner, j’ai suivi plusieurs tutoriels et exemples et il semble que quelque chose me manque.

Ceci est mon code dans le CodeBehind fichier:

public class Segment : System.Web.UI.Page
{
public int[,] GetAllSegments()
{
int[,] segments = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };

return segments;
}

public void Page_Load(object sender, EventArgs e)
{
int[,] allSegments = GetAllSegments();

JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize(allSegments);
string script = String.Format("<script type="text/javascript">var allSegments={0}</script>", json);
this.ClientScript.RegisterClientScriptBlock(this.GetType(), "clientScript", script, true);
}
}

Le script n'apparaît jamais, aussi je l'ai essayé avec RegisterStartupScript mais ça ne marche pas non plus ...

Dans ma page HTML, j'ai inclus ce qui suit en haut: <%@ Page Language="C#" CodeBehind="Dashboard.aspx.cs" %>

Quelqu'un peut-il repérer le problème? Toute aide est fortement appréciée!

Réponses:

1 pour la réponse № 1

Le point est, le dernier argument de RegisterClientScriptBlock la méthode est nommée addScriptTags et depuis que vous l'avez réglé sur true, vous devez supprimer la balise de script et laisser C # ajouter ces balises pour vous:

    int[,] allSegments = GetAllSegments();

JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize(allSegments);
string script = String.Format("var allSegments={0};", json);
this.ClientScript.RegisterClientScriptBlock(this.GetType(), "clientScript", script, true);

ou tout simplement mis addScriptTags à false:

        int[,] allSegments = GetAllSegments();

JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize(allSegments);
string script = String.Format("<script type="text/javascript">var allSegments={0};</script>", json);
this.ClientScript.RegisterClientScriptBlock(this.GetType(), "clientScript", script, false);

L’autre modification mineure que j’ai apportée consiste simplement à ajouter le point-virgule à la fin de votre code js.