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

Basamaklı-çıkışlar damla MVC 3 Razor v...
Nasıl Java kod bazı bölümleri için Ecl...
Hangi bölümleri Real World Haskell şim...
Editör/kullanarak bölümleri şablonları...
Nasıl Jilet kullanabilir miyim @ASP.NE...