2017-10-02 13 views
-1

ViewBagからループする必要があり、その子カテゴリリストの下でMainCategoryにアクセスする必要があります。あなたはコントローラからアイデアを得ることができます。しかし、私は子供のカテゴリ項目にアクセスする際に問題を抱えています。このエラーは、ユーザーが手を出していないことを示します。より明確なアイデアを得るには、下の画像をご覧ください。質問は大歓迎です。オブジェクト内のViewBagオブジェクトにアクセスできない

コントローラー:

public ActionResult Index() 
     { 
      using (var ctx = new db_zikanalyticsEntities()) 
       { 
        var vmCats = new List<CategriesViewModel>(); 

        var l1cats = ctx.Level1Cats.ToList(); 
        var l2cats = ctx.Level2Cats.ToList(); 
        foreach (var l1 in l1cats) 
        { 
         var catObj = new CategriesViewModel { Level1CatsName = l1.Name }; 
         foreach (var l2 in l2cats) 
         { 
          if (l1.Level1CatId == l2.Level1CatId) 
          { 
           catObj.Level2CatsList.Add(new Level2Cats 
           { 
            Level2CatId = l2.Name, 
            Name = l2.Name, 
            Level1CatId = l2.Level1CatId, 
            Updated = l2.Updated 
           }); 
          } 
         } 
         vmCats.Add(catObj); 
        } 
        ViewBag.MainCategory = vmCats; 


       return View(); 
     } 


    } 

ビュー:

@foreach (var item in ViewBag.MainCategory) 
          { 
           <div class="col-md-3"> 
            <div class="mainCategory"> 
             <h4><u> 
              <b>@item.Level1CatsName</b> 
              </u></h4> 
             <h4> 
              <i class="fa fa-star" aria-hidden="true"></i> 
              <i class="fa fa-star" aria-hidden="true"></i> 
              <i class="fa fa-star" aria-hidden="true"></i> 
              <i class="fa fa-star-half-o" aria-hidden="true"></i> 
              <i class="fa fa-star-o" aria-hidden="true"></i> 
             </h4> 

             <div class="row"> 
              <div class="col-lg-1"> 
               <ul> 
                @foreach (var item2 in ViewBag.MainCategory.Level2CatsList) 
                { 

                <li>@item2.Name</li> 


                } 
               </ul> 

              </div> 
             </div> 

            </div> 
           </div> 

          } 

Picture1 Picture2

答えて

1

このseeme問題になるために:

@foreach (var item2 in ViewBag.MainCategory.Level2CatsList) 

これを正しいコードにするには、Level2CatsListをMainCategoryクラスの静的メンバーにする必要があります。すべてのMainCategoryインスタンスがLevel2CatsListと同じ値を持っていますか?

あなたが意味する可能性があります:上記

@foreach (var item2 in item.Level2CatsList) 

Level2CatsList場合、インスタンスメンバー正しいです。

MainCategoryにクラス定義を含めることができます。

関連する問題