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

  • dirkgently1

    dirkgently1

    13 NİSAN 2006
  • ethr95awd

    ethr95awd

    8 Kasım 2006
  • Kevin Bruckert

    Kevin Brucke

    30 Aralık 2006