Mam obecnie w moim kontrolerze metodę akceptującą zbiór formularzy, zapisującą dane, a następnie wyświetlającą dane na stronie "Szczegóły". W tej chwili, kod aktualnie wygląda mniej więcej tak:Przekierowanie ASP.NET MVC z modelem
[HttpPost]
public ActionResult Create(PersonModel person)<br>
{
if (person.IsValid())
{
person.additionalData = "Person created successfully";
return View("Details", person);
}
}
Problem polega na tym, że powrót widoku szczegółów w ten sposób zachowuje URL mojawitryna/osoba/Create - idealnie chciałbym URL być mojawitryna/osoba/Szczegóły/IdGoesHere.
Jestem pewien, że to musi być możliwe. Oczywiście mógłbym użyć Response.Redirect, ale to nie pozwala mi przekazać modelu do widoku. O ile mogę powiedzieć, nie mogę przekazać modelu za pomocą RedirectToAction?
Dzięki za pomoc.
EDYCJA: Aby potwierdzić - model utworzony przez akcję Utwórz jest inny niż domyślny utworzony przez akcję Szczegóły. Dlatego wykonanie prostego przekierowania do działania i przekazanie Id nie działa, ponieważ wyprodukowany model nie jest poprawny. Aby podać więcej kontekstu, model z akcji Utwórz zawiera dodatkową wartość mówiąc "Osobiście utworzono pomyślnie", jeśli przekierowuję do akcji Szczegóły, ten komunikat nie jest obecny w modelu.
To jest droga.Jeśli prosta wiadomość w tempdata nie wystarczy, możesz po prostu rzucić cały obiekt "PersonModel" w tempdata i odzyskać go z tempdata w metodzie akcji "Szczegóły". – Charlino