Jilet Basamaklı Bölümleri ile iç İçe Düzenleri
MVC3 bir site view engine olarak Razor kullanıyorum. Sitem kaplanabilir olmak istiyorum. Mümkün derileri en çok paylaşılan ana düzeni kaynaklanıyor olabilir yeterince benzer.
Bu nedenle, bu tasarım düşünüyorum:
Ancak, alt tabaka RenderSection
arayabilmesi için, _Common.cshtml
, ve en üst katman olarak tanımlanan bir bölüm oluşturmak için Detail.cshtml
istiyorum. Bu çalışmıyor: RenderSection
görünüşe göre sadece bir sonraki katmana kadar tanımlanan bölümler oluşturur.
Tabii ki, her cildin her bölümünde tanımlayabilirim. Örneğin, eğer _Common
Bölüm Detail
tanımlanan RenderSection("hd")
aramak gerekiyorsa ben sadece _Skin
Her yer bu ve işe yarıyor:
@section hd {
@RenderSection("hd")
}
Bu kod, her cilt şimdi bu aynı bölüm olması gerektiğinden () bazı çoğaltır ve genellikle dağınık hissediyor. Hala Jilet yeniyim ve çok belirgin bir şey eksik olabilir gibi görünüyor.
Ayıklarken, WebViewPage tanımlı bölümler tam listesini görebiliyorum.SectionWritersStack. Eğer sadece vazgeçmeden önce tüm listeyi incelemek için RenderSection söyleyebilirim, ihtiyacım bölümünü bulun. Ne yazık ki, SectionWritersStack halka açık olmayan.
Eğer düzeni sayfaların hiyerarşi erişim ve her farklı bağlamda RenderSection yürütme verebilirim alternatif olarak, ihtiyacım olan bölümü bulun edebilirim. Muhtemelen ben bir şey eksik, ama bunu yapmak için herhangi bir yol göremiyorum.
Bu gol, zaten bahsettiğim yöntem dışında gerçekleştirmek için var mı?
CEVAP
Bu aslında mümkün bugün kamu API (bölüm yeniden tanımlanmasını yaklaşımıyla dışında) kullanıyor. Biraz şans özel yansıma kullanarak olabilir ama tabii ki kırılgan bir yaklaşımdır. Bu senaryo Jilet sonraki sürümünde daha kolay hale içine bakacağız.
Bu arada, burada konuyla ilgili yazdığım blog mesajların bir çift
Neden Jilet _layout.alt çizgi cshtml d...
Dönüştürme biçimini kullanarak jilet D...
Site ASP.NET Sisteminde çalışmayı durd...
[A]Sistemi.Web.Web sayfaları.Jilet.Yap...
Türü Enlem/için kullanılmalıdır Veri 8...