SORU
21 HAZİRAN 2011, Salı


MVC3 Razor özyinelemeli fonksiyon

Tamam, bu yüzden bir liste listeleri listesi listesini içeren görüntülemek için istiyorum

Kaç tane ekran var bilmenin bir yolu var, bu eski özyinelemeli yordamı kırabilirim olduğunu düşündüm.

Bu konuda gerçi tam olarak sorun yaşıyorum.

bu şimdiye kadar (görünüm - basitleştirilmiş) ben ne var:

@foreach(MyObject item in @Model.ListOfObjects){ 
    <div> @item.Title </div>
    //Call recursive function?
}

Şimdi bu nesnelerin her biri de bir Liste var. Seviye başına bir sekme girinti ile bu div aşağıda her düzeyde görüntülemek için, örneğin istiyorum.

Jilet gibi bir işlevi burada yapılması gereken şey olacağını düşünüyordum, ama şekillendirme yardıma ihtiyacım var. Bak ne düşünüyorum:

@functions{
    public static void ShowSubItems(MyObject _object){
         if(_object.ListOfObjects.Count>0){
             foreach(MyObject subItem in _object.listOfObjects){
                 //Show subItem in html
                 ShowSubItems(subItem);
             }
         }
     }
 }

Ama gördüğünüz gibi, ben açıkça yardım :) lazım biraz

CEVAP
21 HAZİRAN 2011, Salı


Razor view engine @helper anahtar kelime ile satır içi özyinelemeli yardımcıları yazmak için izin verir.

@helper ShowTree(IEnumerable<Foo> foos)
{
    <ul>
        @foreach (var foo in foos)
        {
            <li>
                @foo.Title
                @if (foo.Children.Any())
                {
                    @ShowTree(foo.Children)
                }
            </li>
        }
    </ul>
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FattySpins's channel

    FattySpins's

    17 Mayıs 2009
  • rtisticsdev

    rtisticsdev

    31 Mayıs 2012
  • Rugiagialia

    Rugiagialia

    1 Ocak 2008