Geçenlerde bir ASP.NET MVC uygulamasında otomatik inşa optimizasyonu ile RequrieJS kurma egzersiz yoluyla gitti Repo.Simon'ın büyük bir referansı olan birçok yararlı blog makalesi var. ASP.NET perspektifinden, çok sayfalı ASP.NET uygulamaları için RequireJS optimize edicisini yapılandırma açısından en kullanışlı olanlardan biri Making RequireJS play nice with ASP.NET MVC idi.
Zaten orada büyük bilgiler kullanarak benim kendi ASP.NET MVC RequireJS example on GitHub. İçerilenlerin çoğu, zaten orada bulunan örneklere benzemektedir, ancak kısmi görüşler konusunu ele almak için, ve çoklu sayfa bağımlılıkları gerektiriyor biraz farklı bir yaklaşım benimsedim.
_Layout.cshtml
mevcut örneklerden en belirgin fark, RequrieJS yapılandırma verilerini yanı sıra referans sayfasını belirli bağımlılıkları gerektirir geçmesi için yöntemler sunar özel bir RequireViewPage yaratılmasıdır. ,
<head>
...
@RenderModuleConfig()
<script type="text/javascript" src="@Url.Script("vendor/require.js")" data-main="main"></script>
</head>
<body>
...
Görünümler & Partials
görünümleri kadar Tel için (ve benim dava nakavt görünüm modellerinde):
Yani _Layout.cshtml kadar olan beklediğiniz gibi görünecek
...
@RenderSection("scripts", required: false)
<script type="text/javascript">require(['main'], function() { require(['lib/knockout/knockout.require']); });</script>
</body>
Bu işlem ensu aşağıdaki gibi an additional script fragment _Layout.cshtml altına eklendi Herhangi bir görünüm bağımlılığı için ana modül yüklendi (ana için bağımlılıkların main.js
'da tanımlandığı varsayılarak veri öznitelikleriyle belirli bağımlılıkların görüntülenmesi sağlandı.
<div data-require="@MainModule"> ... </div>
<div data-require="@Module("address")"> ... </div>
<div data-require="view\home\index\model"> ... </div>
tasarım ve tam bir seçenek açıklaması için
, çok iyi yazılmış cevabını
README on GitHub
Teşekkür bakın. RequireJS'i şimdi nasıl kullanacağımı daha iyi anladım. –
Yukarıdaki yöntem, sayfalarda mükemmel bir şekilde çalışır, ancak ajax ile yüklenen sayfa div'e çağrıldığında, modüller yüklenmez .. herhangi bir yardım? –
Bu yaklaşım tamamen güvenilir görünmüyor, çünkü satır içi komut dosyası etiketlerindeki kod, main.js'deki koddan önce iyi çalıştırılabilir ve zaman zaman arızalara neden olabilir. İlgili bir soruya [bu yanıtı] (http://stackoverflow.com/a/14345709) bakın. –