Ich möchte auf eine vorherige Seite umleiten, nachdem ich einige Daten in der Datenbank übermitteln. Ich verwende eine TempData
, um ID
auf der aktuellen Seite abzurufen, dann gehe ich auf die Seite mit dem Formular Ich möchte (which have an ID
) senden, aber nachdem die POST
Methode gefeuert TempData
wird von current page ID
übergangen, die die Seite mit dem Formular ist und Ich möchte ReturnRedirect
auf die erste Seite mit seiner ID.TempData wird übergangen, wenn ich versuche, ReturnRedirect
Hier ist der Code:
-Controller mit GET-Methode, wo ich die ID abzurufen:
var currentID = Url.RequestContext.RouteData.Values["id"];
TempData["currentId"] = currentID;
-Controller mit POST-Methode, wo ich versuchen umzuleiten:
if (ModelState.IsValid)
{
// Editing records in database
....
return RedirectToAction("Details", "Jobs",
new { controller = "JobsController", action = "Details", id = TempData["currentId"] });
}
ModelState.AddModelError("", "Something failed");
return View();
ich dies mit Ansatz, weil es funktioniert, wenn die aktuelle Aktion mit einer POST-Methode keine ID hat.
Vielen Dank für Anregungen.
EDIT:
Ich habe ein Detail von Jobs:
// GET: Jobs/Details/5
public ActionResult Details(Guid id)
{
var currentID = Url.RequestContext.RouteData.Values["id"];
TempData["currentId"] = currentID;
var currentUserTemp = LoggedUserId;
TempData["userID"] = currentUserTemp;
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Job job = db.Jobs.Find(id);
if (job == null)
{
return HttpNotFound();
}
return View(job);
}
Aber auf dieser Seite mag ich einen Link zu einer Seite, wo ich aktuelle Benutzerdaten bearbeiten.
Details Seite Code:
@Html.ActionLink("Edit Company Details", "Edit", "UserAdmin", new { id = TempData["userID"] }, null)
Jetzt bin ich auf Seite Benutzer bearbeiten, ich das Formular bearbeiten und speichern, Schaltfläche verwenden (die POST-Methode auslöst) Ich habe die anderen TempData Variable ReturnRedirect
auf dem Grundstück Detail verwenden möchten Seite, aber da beide Seiten IDs haben, wird TempData mit der letzten ID von der URL überschrieben, die die ID der Benutzer-ID ist.
wo hast du 'var currentID = Url.RequestContext.RouteData.Values [" id "] geschrieben; TempData ["currentId"] = currentID; 'code –
können Sie Ihre Frage ein wenig klarer stellen. Fügen Sie bei Bedarf einen Code hinzu –
@MyName - fügen Sie bitte Ihre Aktionsmethode hinzu (get und post beide). Wenn Sie denselben Namen für die get und post-Aktionsmethode verwenden können, müssen Sie nicht einfach umleiten(). –