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

  • bmarian22

    bmarian22

    22 Aralık 2007
  • TheOtherMau5

    TheOtherMau5

    6 Mart 2012
  • trickycharms

    trickycharms

    6 Aralık 2013