denetleyici özelliği kullanılabilir. Benim düşünceme göre temel dezavantajı, içeriğini depolamak için oturum deposunu kullanmasıdır. Bu, bir web çiftliğinde çalışmasını sağlamak için fazladan işlere sahip olacağınız veya oturumları ilk başta açmanız gerektiği anlamına gelir.
TempData
ile ilgili iyi olan şey, tam olarak istediğiniz şeyi yapmaktır. Onun bir dize tabanlı sözlük ve içine herhangi bir şey koyabilirsiniz ve varsayılan olarak sadece bir kez olsun. Dolayısıyla, RedirectToAction()
numaralı telefonu aramadan önce mesajınızı ayarlayın. Bir sonraki istekte mesajları kontrol edip görüntüleyebilirsiniz. Mesajları geri alarak isteklerin sonunda otomatik olarak silinir.
Alternatif olarak, iki istek arasında iletiyi taşımak için çerezleri kullanabilirsiniz. Temelde kendi çözümünüzü yuvarlayabilir veya TempData
'un içeriğini çerezler aracılığıyla taşıyan bir özel ITempDataProvider
uygulayabilirsiniz. Çerezleri doğru şekilde sağlamlaştırmanız gerektiğini unutmayın. Kendi yuvarlanmanız durumunda MachineKey.Protect()
size yardımcı olabilir.
Yaptığınız aynı sorunla karşılaşıyordum ve bunun için FlashMessage adı verilen bir çözüm oluşturdum. Belki bu size biraz iş kazandırabilir. NuGet da mevcuttur. Kullanımı basit:
@Html.RenderFlashMessages()
o varsayılan dönmek mümkündür:
senin görünümündesen şu deyimi daha önce herhangi hale sıralı mesajları şunlardır: aşağıdaki gibi
RedirectToAction()
aramadan önce basit bir mesaj kuyruk tempdata ile doğrulama hataları ve ValidationMessageFor öğesinde hatalar gösteriliyor? –