Asp.net Afficher une alerte de formulaire Web et rediriger

Je suis actuellement coincé. J'ai un formulaire Web avec un bouton qui enregistre ou conserve l'enregistrement.
J'aimerais qu'il affiche un avertissement javascript, Puis la redirigea à la page.
Voici le code que j'utilise


protected void Save/../
{
// Do save stuff
DisplayAlert/"The changes were saved Successfully"/;
Response.Redirect/"Default.aspx"/;
}


Ce code redirige simplement sans donner des conseils sauvegardés avec succès.

Voici mon code DisplayAlert


protected virtual void DisplayAlert/string message/
{
ClientScript.RegisterStartupScript/
this.GetType//,
Guid.NewGuid//.ToString//,
string.Format/"alert/'{0}'/;", message.Replace/"'", @"\'"/.Replace/"\n", "\\n"/.Replace/"\r", "\\r"//,
true
/;
}


Quelqu'un peut-il m'aider à trouver une solution à ce problème?

Merci
Invité:

Emilie

Confirmation de:

Vous ne pouvez pas faire Response.Redirect, Parce que votre avertissement javascript Il ne sera jamais affiché. Mieux vaut votre code javascript vraiment fait
windows.location.href='default.aspx'

Pour rediriger une fois l'avertissement affiché. Quelque chose comme ca:


protected virtual void DisplayAlert/string message/
{
ClientScript.RegisterStartupScript/
this.GetType//,
Guid.NewGuid//.ToString//,
string.Format/"alert/'{0}'/;window.location.href = 'default.aspx'",
message.Replace/"'", @"\'"/.Replace/"\n", "\\n"/.Replace/"\r", "\\r"//,
true/;
}

Cyrille

Confirmation de:

Méthode DisplayAlert Ajoute un script client à la demande de page exécutable en cours. Quand vous appelez Response.Redirect, ASP.NET Donne la redirection HTTP 301 Dans le navigateur, démarrez donc une nouvelle demande de page où le script client enregistré n'existe plus.

Étant donné que votre code est exécuté du côté du serveur, il n'est pas moyen d'afficher un avertissement sur le côté du client et effectuez la redirection.

Affichage également la fenêtre d'avertissement JavaScript Peut confondre le flux de travail mental de l'utilisateur, le message intégré serait beaucoup plus préférable. Vous pouvez ajouter un message à une session et l'afficher dans la demande de page. Default.aspx.


protected void Save/../
{
// Do save stuff
Session["StatusMessage"] = "The changes were saved Successfully";
Response.Redirect/"Default.aspx"/;
}


Puis dans le code Default.aspx.cs derrière /ou dans la page de la classe de base globale, cela peut donc se produire sur n'importe quelle page ou même sur la page principale/:


protected void Page_Load/object sender, EventArgs e/
{
if/!string.IsNullOrEmpty//string/Session["StatusMessage"]//
{
string message = /string/Session["StatusMessage"];
// Clear the session variable
Session["StatusMessage"] = null;
// Enable some control to display the message /control is likely on the master page/
Label messageLabel = /Label/FindControl/"MessageLabel"/;
messageLabel.Visible = true;
messageLabel.Text = message;
}
}


Le code n'est pas testé, mais doit indiquer la bonne direction

Frederic

Confirmation de:

Cela fonctionne parfaitement:


string url = "home.aspx";
ClientScript.RegisterStartupScript/this.GetType//, "callfunction", "alert/'Saved Sucessfully.'/;window.location.href = '" + url + "';",true/;

Georges

Confirmation de:

protected void Save/../
{
// Do save stuff
ShowMessageBox//;
}

private void ShowMessageBox//
{
string sJavaScript = "<script language="javascript">\n";
sJavaScript += "var agree;\n";
sJavaScript += "agree = confirm/'Do you want to continue?.'/;\n";
sJavaScript += "if/agree/\n";
sJavaScript += "window.location = \"[url=http://google.com]http://google.com[/url]\";\n";
sJavaScript += "</script>";
Response.Write/sJavaScript/;
}

Pour répondre aux questions, connectez-vous ou registre