folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder Asp.Net Mvc' De İşlem Başarılı Mesajı Göstermek



Asp.Net Mvc' De İşlem Başarılı Mesajı Göstermek

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Diathorus
    Diathorus's avatar
    Kayıt Tarihi: 19/Mayıs/2014
    Erkek

    Selam arkadaşlar,

    Asp.Net Mvc'ye Web Forms' dan yeni geçtim.

    Benim yapmak istediğim Web Forms mantığında son derece basit. Eminim Mvc' de de son derece basittir fakat ben bir türlü bulamadım.

    Durumu kısaca açıklamak gerekirse;

    Basit bir form ekranım var veritabanına Entity Framework ile kayıt giriyorum. Sayfam açıldığında formun üst kısmında klasik mavi background div ile "Boş alan bırakmayınız" gibi bir metin yer alıyor. Bunu da ViewBag yardımı ile yapıyorum. Sayfamda ise Html.Raw(ViewBag.Alert) şeklinde gösteriyorum.

    Açılan View' i Gösteren Action:

            public ActionResult Education()
            {
                ViewBag.Alert = AdminAlerts.Info();
                return View();
            }

    Kayıt işlemi başarılı bir şekilde gerçekleştiğinde "İşlem başarılı" yazan div' im gösterilsin istiyorum.

    Kayıt Yapan Kod:

            [HttpPost]
            public ActionResult InsertEducation(FormCollection Fc)
            {
                try
                {
                    Education Edu = new Education();
                    Edu.Department = Fc["txtBolumAdi"];
                    Edu.Description = Fc["txtAciklama"];
                    Edu.EndDate = Fc["txtBitis"];
                    Edu.StartDate = Fc["txtBaslangic"];
                    Edu.School = Fc["txtUniversite"];
                    Entity.Education.Add(Edu);
    
                    if (Entity.SaveChanges() > 0)
                        ViewBag.Alert = AdminAlerts.Success();
                    else
                        ViewBag.Alert = AdminAlerts.Error();
                }
                catch (Exception Ex)
                {
                    ViewBag.Alert = AdminAlerts.Error("Hata oluştu: " + Ex.Message);
                }
    
                return RedirectToAction("Education");
            }

     

    Bu şekilde olduğunda "Education" Action' ı çalıştığı için sayfada yine "Boş alan bırakmayınız" uyarısı geliyor.

    return RedirectToAction("Education") yerine return View() yazarsam bu seferde InsertEducation View' i bulunamadı diyor.

    Şimdiden yardımlarınız için teşekkür ederim.

    Diathorus tarafından 16/Tem/15 17:52 tarihinde düzenlenmiştir
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nickalti
    Lightsaber
    Lightsaber's avatar
    Kayıt Tarihi: 29/Ağustos/2012
    Erkek

     Education action'ına isSuccess diye bir parametre daha ekle bunu kontrol ettirip ona göre divleri gösterebilirsin.


    İnsan; insan olsaydı,insan olmazdı..
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Diathorus
    Diathorus's avatar
    Kayıt Tarihi: 19/Mayıs/2014
    Erkek
    Lightsaber bunu yazdı

     Education action'ına isSuccess diye bir parametre daha ekle bunu kontrol ettirip ona göre divleri gösterebilirsin.

    Dostum şu şekilde yaptım olmadı.

    InsertEducation Action' ına ViewBag.IsSuccess = true; ekledim.

    Education Action' ında ise şöyle yaptım:

    if (ViewBag.IsSuccess == null)
    ViewBag.Alert = AdminAlerts.Info();

     

     

    Diathorus tarafından 16/Tem/15 18:14 tarihinde düzenlenmiştir
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nickalti
    Lightsaber
    Lightsaber's avatar
    Kayıt Tarihi: 29/Ağustos/2012
    Erkek
    Diathorus bunu yazdı
    Lightsaber bunu yazdı

     Education action'ına isSuccess diye bir parametre daha ekle bunu kontrol ettirip ona göre divleri gösterebilirsin.

    Dostum şu şekilde yaptım olmadı.

    InsertEducation Action' ına ViewBag.IsSuccess = true; ekledim.

    Education Action' ında ise şöyle yaptım:

    if (ViewBag.IsSuccess == null)
    ViewBag.Alert = AdminAlerts.Info();

     

     

    null yerine false dener misin hocam


    İnsan; insan olsaydı,insan olmazdı..
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Diathorus
    Diathorus's avatar
    Kayıt Tarihi: 19/Mayıs/2014
    Erkek
    Lightsaber bunu yazdı

    null yerine false dener misin hocam

    Dostum False olarak denediğimde ekranda hiç bir şey göstermiyor.

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nickalti
    Lightsaber
    Lightsaber's avatar
    Kayıt Tarihi: 29/Ağustos/2012
    Erkek

    hocam senin sorun viewbag kullanmandan. return View yerine RedirectToAction yaptığında ViewBag değil TempData kullanmalısın.

    http://stackoverflow.com/questions/14497711/set-viewbag-before-redirect


    İnsan; insan olsaydı,insan olmazdı..
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hannibal_King
    Hannibal_King's avatar
    Kayıt Tarihi: 22/Ağustos/2010
    Erkek

    InsertEducation isimli fonksiyonunun geri dönüş değerini Jsonresult yap hocam.

    try içinde  

    var gidileceksayfa = new UrlHelper(Request.RequestContext).Action("method adi", "controller adi");

    return Json(new { url = gidileceksayfa,mesajvarmi = 0 , mesaj = "işlem basarili vs vs s.."});

    diyebilirsin client a ajax isteği gönderebilirsin.

    Sonra html kısmında ajax ın  success kısmına 

     success: function (a) { 
    
                        if(a.mesajvarmi == 1)  
    
                        {
    
                            // burda mesajını gosterebılrısı
    
                        }
    
                        if(a.mesajvarmi == 0)  
    
                        {
    
                            window.location.href = a.url;
    
                        }
    
                    }

    falan yazıp mesajını gösterebilirsin.Tam anlatamadım ancak çözüm bulamazsan çok ayrıntılı anlatabilirim.Yani olayı json lada çözebilirsin.

    EDİT : demek viewbag action bazlı çalışıyo.@Lightsaber hocam doğru mu anladım.

    Hannibal_King tarafından 16/Tem/15 19:16 tarihinde düzenlenmiştir

    lrny.app
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nickalti
    Lightsaber
    Lightsaber's avatar
    Kayıt Tarihi: 29/Ağustos/2012
    Erkek
    Hannibal_King bunu yazdı

    InsertEducation isimli fonksiyonunun geri dönüş değerini Jsonresult yap hocam.

    try içinde  

    var gidileceksayfa = new UrlHelper(Request.RequestContext).Action("method adi", "controller adi");

    return Json(new { url = gidileceksayfa,mesajvarmi = 0 , mesaj = "işlem basarili vs vs s.."});

    diyebilirsin client a ajax isteği gönderebilirsin.

    Sonra html kısmında ajax ın  success kısmına 

     success: function (a) { 
    
                        if(a.mesajvarmi == 1)  
    
                        {
    
                            // burda mesajını gosterebılrısı
    
                        }
    
                        if(a.mesajvarmi == 0)  
    
                        {
    
                            window.location.href = a.url;
    
                        }
    
                    }

    falan yazıp mesajını gösterebilirsin.Tam anlatamadım ancak çözüm bulamazsan çok ayrıntılı anlatabilirim.Yani olayı json lada çözebilirsin.

    EDİT : demek viewbag action bazlı çalışıyo.@Lightsaber hocam doğru mu anladım.

    evet hocam öyleymiş, daha doğrusu viewbag adı gibi view'a taşımak için actionlar arası veri taşımak için tempdata kullanılıyor.


    İnsan; insan olsaydı,insan olmazdı..
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Diathorus
    Diathorus's avatar
    Kayıt Tarihi: 19/Mayıs/2014
    Erkek
    Hannibal_King bunu yazdı

    InsertEducation isimli fonksiyonunun geri dönüş değerini Jsonresult yap hocam.

    try içinde  

    var gidileceksayfa = new UrlHelper(Request.RequestContext).Action("method adi", "controller adi");

    return Json(new { url = gidileceksayfa,mesajvarmi = 0 , mesaj = "işlem basarili vs vs s.."});

    diyebilirsin client a ajax isteği gönderebilirsin.

    Sonra html kısmında ajax ın  success kısmına 

     success: function (a) { 
    
                        if(a.mesajvarmi == 1)  
    
                        {
    
                            // burda mesajını gosterebılrısı
    
                        }
    
                        if(a.mesajvarmi == 0)  
    
                        {
    
                            window.location.href = a.url;
    
                        }
    
                    }

    falan yazıp mesajını gösterebilirsin.Tam anlatamadım ancak çözüm bulamazsan çok ayrıntılı anlatabilirim.Yani olayı json lada çözebilirsin.

    EDİT : demek viewbag action bazlı çalışıyo.@Lightsaber hocam doğru mu anladım.

    Dostum WebForms' da <asp:Literal ile 1 dakika içinde yapabileceğim bir şeyi Mvc de yapmak için binbir takla atıyor olmak bana garip geliyor :D

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Diathorus
    Diathorus's avatar
    Kayıt Tarihi: 19/Mayıs/2014
    Erkek
    Lightsaber bunu yazdı

    hocam senin sorun viewbag kullanmandan. return View yerine RedirectToAction yaptığında ViewBag değil TempData kullanmalısın.

    http://stackoverflow.com/questions/14497711/set-viewbag-before-redirect

    Dostum teşekkür ederim ilgin için TempData ile problem çözüldü. Ellerine sağlık.

Toplam Hit: 1154 Toplam Mesaj: 10
asp.net mvc asp.net mvc