Asp.net Webform-Display-Warnung und Umleitung
Ich bin derzeit stecken. Ich habe ein Formular mit einem button, registriert oder speichert einen Datensatz.
Was ich möchte ist, sodass es ein javascript-alert und dann einen redirect zu einer Seite.
Hier ist der code, den ich verwende
protected void Save(..)
{
//Do save stuff
DisplayAlert("The changes were saved Successfully");
Response.Redirect("Default.aspx");
}
Dieser code leitet nur ohne Angabe der Aufforderung wurde Erfolgreich Gespeichert.
Hier ist mein DisplayAlert Code
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
);
}
Kann mir jemand helfen eine Lösung finden?
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht eine Antwort.Umleiten, weil Sie Ihre javascript-alert wird nie angezeigt. Besser, Ihr javascript-code tatsächlich für ein
windows.location.href='default.aspx'
zu tun, die Umleitung, nachdem die Warnung angezeigt wird. So etwas wie dieses:Den DisplayAlert-Methode fügt den client-Skript, um die derzeit ausgeführte Anforderung der Seite. Wenn Sie anrufen, Antwort.Umleiten, ASP.NET gibt eine HTTP-301-redirect an den browser, somit der Start einer neuen Anforderung der Seite, wo der registrierte client-Skript nicht mehr vorhanden ist.
Da Ihr code ausgeführt wird, auf der server-Seite, es gibt keine Möglichkeit zur Anzeige der alert-client-Seite und die Umleitung durchgeführt.
Auch mit einer JavaScript-alert-box kann verwirrend sein, um einem Benutzer die geistige workflow -, inline-Nachricht wäre doch viel mehr vorzuziehen. Vielleicht könnte man hinzufügen, die Nachricht an die Sitzung und die Anzeige dieser auf den Standardwert.aspx-Seite anfordern.
Dann in Verzug.aspx.cs code-behind (oder eine gemeinsame Basis Seite Klasse, so kann dies passieren, auf jeder Seite, oder auch die master-Seite):
Den code nicht getestet, sollte aber zeigen Sie in die richtige Richtung
Diese funktioniert perfekt:
Page.
vorClientScript
etwa so:Page.ClientScript...