6
votes

ASP.NET ALIERATION Nouvelle ligne du code derrière

J'ai ce code dans la page.cx.cs Fichier:

void btnSessionCreate_Click(object sender, EventArgs e)
{
        if (Session["user"] == null)
        {
            Session["user"] = Guid.NewGuid().ToString();
            Response.Redirect("/");
        }
        else if (Session["user"] != null)
        {
            string userBrowser = Request.UserAgent.ToString();
            string sessionId = Session["user"].ToString();

            Response.Write("<script>alert('" + sessionId + "\r\n" + userBrowser + "');</script>");
        }
 }


6 commentaires

Vous ne devriez pas utiliser la réponse.Write à la sortie JavaScript. Mauvais design. Regardez sur enregistrerstartupscript !


@epascarello Pourquoi ne devrais-je pas l'utiliser?


Réponse.write peut bousiller le flux et ce n'est pas fiable quand il sera envoyé. Utilisez les méthodes intégrées au code pour enregistrer JavaScript.


@epascarello et comment puis-je appeler le script enregistré à partir du codeBeHind? Et aussi, je ne veux pas l'enregistrer au démarrage? N'existe pas juste regsiter sans extension de démarrage? Merci!


Lisez les docs dessus, cela l'explique avec des exemples.


@Epascarello comme sur: DotNetCurry.com/showarticle.aspx?id=274 Maître.page.clientcript.registerstartupscript () est également utilisé pour appeler ???


3 Réponses :


1
votes

Vous avez juste besoin d'échapper au \ code>, ils deviennent donc \ code> lorsque sortie à JavaScript:

Response.Write("<script>alert('" + sessionId + @"\r\n" + userBrowser + "');</script>");


0 commentaires

7
votes

Utilisez le symbole @ ou double \\ pour échapper au slash xxx

ou xxx < / Pré>

Plus d'infos sur Client.registerStartupscript ici


2 commentaires

Merci pour une bonne réponse, une autre petite question que j'ai pour vous sur la méthode Registerscript. Si je l'inscris, comment puis-je appeler alors à partir de n'importe quel endroit sur CodeBeHind? Merci!


Vous pouvez l'appeler n'importe où - Button_Click, page_Load, etc. Il insère un extrait JavaScript dans votre page et il prend effet immédiatement après la charge de votre page / rechargée. Toute fonction déclarée dans ce script doit être disponible pour votre page. Donnez-lui juste un essai et voyez comment ça fonctionne.



0
votes

réponse.write ("alerte ('" + sessionId + "\ n" + userbrowser + "');"); ");

Cela fonctionnera bien dans ASP.NET


0 commentaires