2011-09-15 21 views
13

this question'u kontrol ettim ve ilk sorunlarımı çözdüm. Ancak kısmi görünümün yalnızca kullanıcı bir bağlantıyı tıklattığında, sayfa yüklendiğinde kısmi görünümler oluşturmak ve kısmi görünüm yüklenirken bir ilerleme göstergesi göstermek istediğinde render edilmesini istemiyorum.ajax Kullanarak Kısmi Görünümler Oluşturma

Bunu nasıl elde edebilirim?

Bunu okumak için çok teşekkür ederim.

cevap

43

(jquery ajax işlemi kullanarak) o

public ActionResult Create() 
{ 
    var model = new MyModel(); 

    if (Request.IsAjaxRequest()) 
    { 
      return PartialView("_Partial", model.PartialModel); 
    } 
    else 
    { 
      return View(model); 
    } 
} 

gibi bir şey yapar ve daha sonra sayfanızda gibi bir şey:

$(function(){ 

    $(document).ajaxStart(function() { 
     //show a progress modal of your choosing 
     showProgressModal('loading'); 
    }); 
    $(document).ajaxStop(function() { 
     //hide it 
     hideProgressModal(); 
    }); 

    $.ajax({ 
      url: '/controller/create', 
      dataType: 'html', 
      success: function(data) { 
      $('#myPartialContainer').html(data); 
      } 
    }); 
}); 
7

İlk sayfada @Html.Partial(...) yazarak oluşturabilirsiniz.

+0

Think @ Html.Parital, Ajax, jquery'de kullanılamaz. – Shan

+0

@Shan: Sunucu tarafı bir şey; Bununla hiçbir ilgisi yok. – SLaks

+0

@SLaks, ana görünüm görüntülendikten sonra görüntülenecek kısmi görünümlere ihtiyaç duyuyor gibi görünüyor (muhtemelen ilk işlemden uzun süre kaçınmak için). Bildiğiniz @ Html.Partial() 'in bildiğim kadarıyla ana görünümle birlikte sunucuda işlenir. Bu yüzden mans problemini çözmez. Ayrıca başlangıçta soruyla kandırıldım. – cnom

8

Standart Sayfasında Kontrolör

public ActionResult GetModule(string partialName){ 
    return PartialView("~/Views/Shared/"+partialName); 
} 

Eğer bir ActionMethod yaratabileceği sayfayı yükleyin ve ardından ajax kısmi görünümü yüklemek isterseniz

<div id='mod1'>Loading...</div> 
<script type="text/javascript"> 
      $("#mod1").load("/ControllerName/GetModule?partialName=test1");   
</script> 
+0

'Kısmi Görünüm'ün dosya biçimini koymam gerekir mi? .cshtml gibi –

İlgili konular