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

  • CrazyMan

    CrazyMan

    14 Mayıs 2008
  • Fr. Eckle Studios

    Fr. Eckle St

    29 Kasım 2006
  • Māris Zaharovs

    Māris Zahar

    28 Mayıs 2008