SORU
2 NİSAN 2011, CUMARTESİ


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:

Planned view diagram

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
3 NİSAN 2011, Pazar


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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bennythecoder

    Bennythecode

    25 Mart 2008
  • David MeShow

    David MeShow

    10 EKİM 2006
  • RyanXLT

    RyanXLT

    22 Ocak 2011