2016-01-06 4 views
8

MVC 6 ile oynuyorum ve şu anda sitemde kayıtlı olan bir Kullanıcı ızgarası var. Girdinin yukarısında, arama/filtre işlevi için bir Görünüm Bileşeni oluşturdum. Bu şartlarınBir asp 5/MVC 6 Görünüm Bileşenini ajax üzerinden yeniden yükleyebilir miyim?

@Component.Invoke("UserSearchBar") 

One üzerinden çağrıldığında kaydetmek ve bir son kullanıcı çabucak/onu sık kullanılan arama erişebileceği şekilde Dropdowns değerlerini yeniden muktedir olduğunu. Tüm kayıtlı aramaların Görünüm Bileşenine bir açılır kapanış ekledim.

Kullanıcı bir arama kaydettikten sonra, açılır listeyi güncellemek için UserSearchBar View Bileşenini yeniden yüklemek istiyorum.

Sorularım şunlardır: a düğmeye basıldıktan sonra

  1. nasıl ajax ile bir görünüm bileşeni yeniden do?
  2. Bu senaryoda, bileşenlerin görünümünde ve yeniden yüklemede kısıtlamalar nedeniyle, kısmi görünüm bileşeni yerine Kısmi kullanmalı mıyım?

Açılır için Görünüm Bileşeninin içinde Kısmi kullanabilirsiniz. Ya da aşağı açılan bir öğeye programsal olarak ekleyin, ancak kaydedilen aramalardan birini uygulamak için bir düğmeyi tıklattığımda Görünüm Bileşenini yeniden yükleme ile aynı soruyu yanıtlamaya devam ediyorum.


dışarı yazarken sorun aracılığıyla düşünme sonra Çözümü

, daha iyi bir ile geldi (daha doğru?) Görünüm Bileşen yeniden dahil olmaz yolu. Kaydederek, kaydetme yöntemine bir ajax çağrısı yapın ve açılır listeye bir öğe ekleyin. Ve kaydedilen aramada, kayıtlı aramayı geri döndürecek ve uygulayacak bir yönteme çağrı yapın. Tek yapmanız gereken tek şey görünümü döndüren bir denetleyici bir rotayı kurulur 6.

cevap

9

mümkün (ve nasıl) MVC bir Görünüm Bileşeni yeniden ise

Ancak, ben yine de öğrenmek istiyorum bileşen. Örneğin:

public class MyController : Controller { 
    public IActionResult GetMyViewComponent() { 
     return ViewComponent("MyViewComponent", <arguments...>); 
    } 
} 

Daha sonra AJAX üzerinden bu kontrolöre bir GET isteğinde bulunabilir ve isteğin sonucu eski görünüm bileşeni değiştirin.

Kısmi veya görünüm bileşeni kullanmanız gerekip gerekmediği konusunda size kalmış, ancak bir bileşenle yapışmanızı öneriyorum çünkü bu bileşen için arama çubuğunun ilgili mantığını tutmanıza izin veriyor.

+0

Tam olarak aradığım şey bu. Basit ve işe yarıyor. Teşekkürler. –

+0

Lütfen bir örnek verebilir misiniz, nasıl kullanabilirim? –

+0

Ryan Helmoski büyük yardım. teşekkür ederim. Bunu benim görüşüme göre nasıl kullanacağımı bilmiyorum. Ajax bölümünü paylaşabilir misiniz? – Kulpemovitz