2011-06-14 13 views
14

için birden fazla bölüm görünümünü nasıl değiştirebilirim Görünümümde çoklu kısmi görünüm kullanıyorum. Sol tarafta bir link butonum var. OrtadaAjax.Actionlink

Ben 2 partialview ben

ben göndermek mümkün m aynı bağlantı düğmeyi tıklamak üzerinde aşağı kısmi bir görünümünü güncellemek istiyorum şimdi Yukarı partialview güncellemek mümkün m bize Yukarı varsayalım ve Aşağı Ajax.ActionLink düğmesinde yalnızca bir UpdateTargetID değeri ama aynı düğmenin clcik'ini 2 Kısmi olarak güncellemek istiyorum.

1) Ajax.ActionLink veya u önerdiği gibi ben Ev Kontrolörü veya başka bir şekilde Çoklu kısmi görünümü dönebilirsiniz 2) birden fazla UpdateTargetID geçmesine herhangi bir yolu bana

yanıtlayın var mı

Teşekkürler için teşekkürler Herkesin tek bir tıklamayla birden fazla kısmi görünümü yenilemek için ne yaptığımı söyleyeyim Bu, tıklamak için kullanıyorum eylem Bu, bu Eylemin bir OnSucess işlevi kullanarak kullanıyorum Güncelleştirmek için, Bu Eylem linki kısmi görünümde

    <%= Ajax.ActionLink("Select", "Employee", new { Id = Employee.EmployeeID }, new AjaxOptions { UpdateTargetId = "EmployeeDiv", HttpMethod = "Post", OnSuccess = "function(){EmployeeHistory(-2," + Employee.EmployeeID.ToString() + ");}" })%> 

Bu 210 Ben

 <div id="Paritalview div1"><% Html.RenderPartial("PartialViewname1"); %></div> 
     <div id="Paritalview div2"><% Html.RenderPartial("PartialViewname2"); %></div> 
+0

Cevabıma buradan ulaşabilirsiniz: http://stackoverflow.com/a/14036279/386739 Bu benim için gerçekten iyi çalışıyor – Ryan

cevap

14

Evet orada güncellemek istiyorum

function EmployeeHistory(EmployeeID) { 
    var url = '<%= Url.Action("PartialviewAction", "ControllerName") %>' 
    $('#PartialviewDiv1').load(url, { Id: EmployeeID }); 
    var url1 = '<%= Url.Action("PartialviewAction", "ControllerName") %>' 
    $('#PartialviewDiv2').load(url1, { Id: EmployeeID }); 

} 

ve bu iki div Endeksi görünümünde kısmi görünümünden aradım bir javascript - Don Ajax.ActionLink'u kullanmayın. IMO, Web Formları gibi MS Ajax kitaplığı şişirilir.

Basit tutun - jQuery kullanmak - o zaman toplam kontrole sahip: Her iki paneller güncelliyoruz beri, kendi var kısmi görünümde bu iki orta panelleri sarma öneririm, ancak

$(function() { 
    $('#somelink').click(function(e) { 
     e.preventDefault(); 

     $.get('/controller/action1', function(data) { 
     $('#up').html(data); 
     }); 

     $.get('/controller/action2', function(data) { 
     $('#down').html(data); 
     }); 
    }); 
}); 

- Daha sonra bunu tek bir eylem yöntemi ile sunun - bu şekilde sadece 1 ajax aramasına ihtiyacınız vardır.

Düzenleme

@FelixM bahseder gibi, Url.Action veya Url.RouteUrl AJAX çağrısı için URL oluşturmak için kullanması gereken, bu nedenle yolları daha sonra değiştirirseniz JS örneğin gerekmez:

.get('@Url.Action('Controller', 'Action1')', function(data)

veya

.get('@Url.RouteUrl('SomeNamedRoute')', function(data)

Bu komut dosyasını harici bir dosyaya koymanız halinde, ana görünümünde URL'yi ayarlamak için bir teknik kullanmanız, ardından harici değişkeni okumanız gerekir.

Bu tür teknikler bir JavaScript değişkeni, gizli alan, parametre olarak işlev görmek için URL'yi vb. Içerir.

+2

İyi cevap. Sadece emin olmak için, Kontrolör/İşlem URL'sini açıkça koymak yerine, doğru URL'yi oluşturmak için Url.Action kullanın. – FelixMM

+0

Cevabınız için teşekkürler, güncellemem gereken bir şey var 3 kısmi görünüm kullanarak ve sol tıklama üzerine tıklamak bağlantı ve kısmi bir görünümde de, MVC yeni değilim Lütfen bana nasıl kullanacağımı söyleyin –

+0

+1, kabul edilen, mutlak kontrol toplamları. Bir sayfanın birden çok alanını aynı anda kısmi görünümlere karşılık olarak güncellemem gerekirse, bunu bir "RenderViewToString" uygulaması yardımıyla bir json yanıtıyla tek bir işlem kullanarak yapardım. –