Ich habe derzeit eine Methode in meinem Controller, die eine Formularsammlung akzeptiert, speichert die Daten und zeigt dann die Daten auf einer 'Details' Seite. Im Moment sieht der Code zur Zeit so etwas wie:ASP.NET MVC Redirect mit Modell
[HttpPost]
public ActionResult Create(PersonModel person)<br>
{
if (person.IsValid())
{
person.additionalData = "Person created successfully";
return View("Details", person);
}
}
Das Problem ist, dass die Details der auf diese Weise anzuzeigen Rückkehr behält die URL mysite/Person/Create - im Idealfall würde ich die URL wie mysite/Person sein/Details/IdGoesHier.
Ich bin sicher, dass dies möglich sein muss. Natürlich könnte ich Response.Redirect verwenden, aber dies erlaubt mir nicht, das Modell an die Ansicht zu übergeben. Soweit ich das beurteilen kann, kann ich das Modell nicht mit RedirectToAction weitergeben?
Danke für die Hilfe.
BEARBEITEN: Zur Bestätigung - das von der Aktion Erstellen erstellte Modell unterscheidet sich von dem Standardmodell, das mit der Aktion Details erstellt wurde. Daher funktioniert eine direkte Weiterleitung zu Aktion und Weitergabe der ID nicht, da das erstellte Modell nicht korrekt ist. Um mehr Kontext bereitzustellen, enthält das Modell aus der Aktion "Erstellen" einen zusätzlichen Wert, der besagt, dass die Person erfolgreich erstellt wurde. Wenn ich die Aktion "Details" umgebe, ist diese Nachricht im Modell nicht vorhanden.
Dies ist der Weg zu gehen.Wenn eine einfache Nachricht in tempdata nicht ausreicht, können Sie einfach das gesamte 'PersonModel'-Objekt in tempdata werfen und es in Ihrer' Details'-Aktionsmethode von tempdata zurückholen. – Charlino