2016-04-14 46 views
0

Bir formun içinde bir açılır liste var ve bir div. Bunu, açılan listeden bir değer seçtiğimde, div içinde gösterilmesini istiyorum.dropdwonlist'ten bir değer seçerken onu örnekte göstermek istiyorum div

Bunu başarabildim, ancak sorun şu, ilk seçimlerden sonraki seçimler div'den önceki sonuçları siliyor. Ben first select ile second select değerini ekleyebilirsiniz nasıl div ikisini göstermek için bu seçtiğinizde

public ActionResult SelectStudWhoWantReport(int StudentId = 0) 
{ 
    IEnumerable<SelectListItem> items = db.Students.Select(c => new SelectListItem 
      { 
       Value = SqlFunctions.StringConvert((double)c.StudentID).Trim(), 
       Text = c.StudentName 
      }); 
    ViewBag.StudentId = items; 
    Student WhomakeReport = db.Students.Find(StudentId); 
    ViewBag.Name = WhomakeReport.StudentName; 
    return View(); 
} 

viewbag

, div apear değerdir.

+0

Sizin noktanızı elde edemiyor, lütfen detaylandırır mısınız? –

cevap

0

Sorununuzu çözmek için kötü bir yaklaşım kullandığınızı düşünüyorum.

Seçimin sonucunu, kontrolörünüzün sınıfında, benim yaptığım bir form gönderimi aracılığıyla elde edersiniz ve daha sonra bunu Görünümünüze gönderirsiniz.

Sorun, denetleyiciyi aradığınızda sayfanızın yeniden yüklendiğidir, böylece önceki bilgileri kaybedersiniz. Önceki sonuçları saklayabileceğiniz ve bunları Görünüm üzerinde oluşturabileceğiniz farklı yollar vardır. Ancak, bu sorunu çözmek için size daha doğru bir yaklaşım açıkladığımı daha iyi düşünüyorum.

Görünümünüzde, denetleyicinize yüklediğiniz bir dropdownlist bileşeniniz olmalıdır. Zaten buna sahip olduğun var.

Seçim yapıldığında, formu göndermek yerine, sunucunuzda şu anda denetleyicinizde yaptığınız şeyi yapan bir yönteme AJAX çağrısı yapın (sonuç, seçili kimliğe göre sonuç alın) ve Bir ActionResult döndürme, sadece istediğiniz değeri döndürün.

AJAX geri aranması geri döndüğünde, sonuçta istemci kodunuz olur ve böylece önceki sonuçlardan sonra eklemeniz gerekir.

Bu yaklaşım yalnızca MVC model bakış açısından daha iyi değildir, ayrıca uygulanması daha kolaydır ve kullanıcılarınızın tüm listeyi yeniden yüklemeye gerek kalmadan listeden açılır menüden öğeleri seçmelerine ve sonuçları görmelerine izin verir.

+0

Cevabınız için teşekkür ederim bunu deneyeceğim –