Ich habe einen Controller implementiert, um neue Benutzer zu erstellen. Wenn der Benutzer erfolgreich erstellt wird, wird er an Index()
weitergeleitet.Umleitung bei Erfolg und Fehler bei Ausfall anzeigen
Was ich will, ist erhalten umgeleitet, wenn alles in Ordnung ist, aber Aufenthalt in der aktuellen Seite und den Fehler sehen, wenn etwas gescheitert.
Ich verwende jQuery ajax
mit MVC
.
Mein Controller sieht wie folgt aus:
[Authorize]
public ActionResult CreateUser(string username)
{
try
{
//here the logic to create the user
}
catch (Exception ex)
{
string error = string.Format("Error creating user: {0}", ex.Message);
Response.StatusCode = 500;
Response.Write(error);
}
return RedirectToAction("Index");
}
Das Formular mit jQuery abgefangen einreichen wird, und dann wird der Anruf mit Ajax gemacht:
$("#new-user-form").submit(function() {
var form = $(this);
$.ajax({
type: "GET",
url: form.attr('action'),
data: form.serialize(),
success: function(data, textStatus, xhr) {
//At this point I would like to redirect
},
error: function(xhr, textStatus, errorThrown) {
$(".error-summary").html(xhr.responseText);
}
});
//cancel the event
return false;
});
Es funktioniert gut, wenn ein Fehler auftritt, aber Ich weiß nicht, wie ich den Erfolgsfall umsetzen soll.
Ich bin für andere Alternativen geöffnet.
Ich habe eine ähnliche Situation. Ich habe eine Seite mit einem Formular zum Ausfüllen. Eine Schaltfläche auf der Seite ruft Daten aus einem Feld ab, ruft einen Webdienst auf, um verwandte Daten zu suchen, und leitet bei erfolgreicher Suche nach einer anderen Seite um. Ich benutze Ajax, um die Datenüberprüfung zu umgehen, da die validierten Felder nicht für die Nachschlageoperation der Schaltfläche gelten. Wenn die Suche fehlschlägt, möchte ich einen Fehler auf derselben Seite anzeigen. Zumindest würde es mir gefallen. – Suncat2000