2008-11-08 11 views
5

ile içerir siz kısmi görünümler/görünüm kontrolleri ile çalışırken jQuery ile çalışan Asp.Net MVCTemiz yolu ASP.Net MVC

<script type="text/javascript" src="jquery.js"></script> 

içerir ele nasıl da? Temel olarak, jQuery'i ana sayfamda yapmak istemiyorum çünkü tüm görünümlerimde jquery kullanmıyorum, ama aynı zamanda kullanıcı kontrolünün jQuery'i sağa ekleyebilmesinin kolay bir yolunu da istiyorum. yinelenen jquery oluşturmadan konum ('kafa') içerir.

En iyi yol bir ScriptManaager kullanmak olacaktır, ancak bu uygulamada ASP.Net Ajax'a güvenmek istemiyorum. Kullanabileceğim 'hafif' bir ScriptManager var mı, bu da jQuery için yeni yayımlanmış intellisense izin verecek?

Bu işlevi sağlayan bir WebControl oluşturdum, ancak gerçekten istediğim VS2008 için intellisense desteğini alamıyorum.

Bunun mantıklı olduğunu umuyorum. senin görünümünde, Sonra

function loadJSInclude(scriptPath, callback) 
{ 
    var scriptNode = document.createElement('SCRIPT'); 
    scriptNode.type = 'text/javascript'; 
    scriptNode.src = scriptPath; 

    var headNode = document.getElementsByTagName('HEAD'); 
    if (headNode[0] != null) 
     headNode[0].appendChild(scriptNode); 

    if (callback != null)  
    { 
     scriptNode.onreadystagechange = callback;    
     scriptNode.onload = callback; 
    } 
} 

: Bu,

her sayfada bulunan bir hafif util.js yapmak içinde çeşitli ortak şeyler koyabilirsiniz, ayrıca:

cevap

13

JQuery'yi sayfalarınızın yüksek bir yüzdesinde kullanırsanız, bunu yalnızca ana sayfaya koyardım. Sadece tarayıcıda önbelleğe alındığı ve sayfanızı oluşturmak için mükemmel bir şekilde ihmal edilebilir bir etkisi olacak bir kez indirilecek. Bu yayınlamak için çalışıyor

0

Hep böyle yapabilirdi sadece yerleştirin:

<script type='text/javascript'> 
    if(typeof(someJqueryObject) == "undefined")   
     loadJSInclude('jquery.js', doYourStuff);   
    else   
     doYourStuff(); 

    function doYourStuff() 
    { 
     // jQuery will be loaded now, so you can do your stuff here. 
    } 
</script> 
+1

ama alışkanlık bu güzel intellisense almak edilir – Jake

3

mevcut teknoloji ile bir sayfa-sayfa temelinde yapabileceğini olsa sadece kısmi manzarası bunun nasıl emin değilim.

Ana sayfanızda, başlık etiketinin içinde bir ContentPlaceHolder oluşturabilirsiniz. Kullanıcı denetimlerinizde, jQuery içeriklerini sayfalarınızın ContentPlaceHolder içerik alanına eklemeniz yeterlidir.

1

Ahh o sayfasının bir parçası olarak tedavi ediliyor çünkü beni deli ... ama

<script src="<%=Url.Content("~/Content/js/jquery-1.2.3.min.js") %>" type="text/javascript"></script>