In Ihrem Fall statt RouteValueDictionary
der Verwendung und Passing-Modell von Abfragezeichenfolgeflag versuchen TempData
(denn wenn wir RedirectToAction verwenden es wird eine neue HTTP-Anforderung und Objekt Routen machen wird in URL angezeigt, so ist es nicht ein guter Ansatz in sensiblen Daten anzuzeigen url).
Verwendung TempData
wie folgt: -
public ActionResult GetInfo(SomeModel entity)
{
----
TempData["entity"] = entity; //put it inside TempData here
return RedirectToAction("NewAction", "NewController");
}
public ActionResult NewAction()
{
SomeModel smodel = new SomeModel();
if(TempData["entity"] != null){
smodel = (SomeModel)TempData["entity"]; //retrieve TempData values here
}
-------
-------
}
Der Vorteil TempData
hier ist, dass es seinen Wert für eine Umleitung beibehalten wird, und darüber hinaus wird Modell privat an einen anderen Controller-Aktion transportiert werden, und wenn Sie Daten, die aus TempData
seine Daten werden automatisch entsorgt und wenn Sie den Wert TempData
nach dem Lesen beibehalten möchten, verwenden Sie TempData.keep("entity")
.
ODER
Wenn Ihre Ansichten in einem gleichen Controller sind dann dies eine einfache Lösung für Ihr Problem:
public ActionResult GetInfo(SomeModel entity)
{
----
return NewAction(entity);
}
public ActionResult NewAction(SomeModel smodel)
{
-------
-------
return View("NewAction",smodel)
}
Wie richtig kommentiert von @ Chips_100 so im hier ua: - Die Die erste Lösung führt eine echte Umleitung (302) durch, die die URL im Browser des Benutzers aktualisiert. Die zweite Lösung liefert das gewünschte Ergebnis, während die ursprüngliche URL in der Adressleiste beibehalten wird.
Das sieht übermäßig kompliziert aus. Gibt es keine Möglichkeit, eine serverseitige Umleitung durchzuführen? –
@ PhilipPittle..was kompliziert .. nur Sie haben das Modell in tempdata und dann tippen Sie tempdata in das Modell auf die gewünschte Aktion .. was ist kompliziert darin? –
@Exception: Danke, es funktioniert @ Philip Pittle: Einige effizientere Vorschlag, wenn irgendwelche geschätzt werden. –