Aşağıdaki iki eylem yöntemine sahibim (soru için basitleştirilmiş):
[HttpGet]
public ActionResult Create(string uniqueUri)
{
// get some stuff based on uniqueuri, set in ViewData.
return View();
}
[HttpPost]
public ActionResult Create(Review review)
{
// validate review
if (validatedOk)
{
return RedirectToAction("Details", new { postId = review.PostId});
}
else
{
ModelState.AddModelError("ReviewErrors", "some error occured");
return RedirectToAction("Create", new { uniqueUri = Request.RequestContext.RouteData.Values["uniqueUri"]});
}
}
Yani doğrulama başarılı olursa başka bir sayfaya yönlendiriyorum (onay).
Bir hata oluşursa, aynı sayfayı hatayla görüntülemem gerekir.
Yaparsam return View()
hata görüntülenir, ancak yaparsam return RedirectToAction
(yukarıdaki gibi) Model hatalarını kaybeder.
Bu soruna şaşırmadım, sadece bununla nasıl başa çıktığınızı merak ediyorum?
Elbette, yönlendirme yerine aynı Görünümü döndürebilirim, ancak "Oluştur" yönteminde, çoğaltmam gereken görünüm verilerini dolduran mantığım var.
Herhangi bir öneri?