İki bakan bir ASP.NET MVC online alışveriş benzeri uygulama vardır:Geçiş mesajı ASP.NET MVC görüntülemek için
- Bir öğenin sayfa (fotoğraf, açıklama, vs.)
- kullanıcı başarıyla formu gönderdikten sonra kullanıcı yorum
bırakabilir bir form, o öğenin sayfasına geri yönlendirilmesi gereken ve bir defalık mesajı üst görüntülenecek olmalıdır: "İncelemeniz gönderildi başarıyla".
kontrolör kodu (basitleştirilmiş) aşağıdaki gibidir: kullanıcı öğenin sayfayı yenilemesi veya
- mesajı tekrar gösterme gerekir:
[HttpGet] public ActionResult ViewItem([Bind] long id) { var item = _context.Items.First(x => x.Id == id); return View(item); } [HttpGet] public ActionResult AddReview() { return View(); } [HttpPost] public ActionResult AddReview([Bind] long id, [Bind] string text) { _context.Reviews.Add(new Review { Id = id, Text = text }); _context.SaveChanges(); return RedirectToAction("ViewItem"); }
karşılamak için bazı şartlar vardır.
- İleti, URL'yi kirletmemelidir.
- Denetleyici yöntemleri bir birine birleştirilmemiş olabilir.
Mesajı kullanıcı oturumuna kaydetmeyi ve görüntülendikten sonra atmayı düşünüyordum, ancak daha iyi bir çözüm olabilir mi?
TempData bunun için çalışacak. Bu sorudaki örneğe bakın: [http://stackoverflow.com/questions/1500402/when-to-use-tempdata-vs-session-in-asp-net-mvc](http://stackoverflow.com/questions/1500402/ne zaman-kullanım-tempdata-vs-oturum açma-as-net-mvc) – markpsmith
ViewBag veya ViewData, oturumdan daha iyi olurdu. Http://www.arunprakash.co.in/2013/08/viewbag-viewdata-tempdata-and-view.html –
TEMPDATA burada tavsiye edilir, bir flash messenger olarak hareket edecektir. –