2017-08-18 9 views
0

私は自分のコンポーネントをtreeviewメニューに持っています。このようなHTML構造を生成したいと思います。ここでDotVVMコードのコンポーネントは正しくHTML構造を生成しません

<a href> 
    <span class="something"> 
     <i class="icon"></i> 
    </span> 
</a> 

私の見解でレンダリングされていない、私は私のメニューのための構造を生成どこ

public void DataBindItem(DotvvmControl parent, AdminMenuListDTO item, IDotvvmRequestContext context) 
    { 
     var li = new HtmlGenericControl("li"); 


     if (item.HasCategories) 
     { 
      //holder pro ikonu (šipku ukazující možnost rozbalení menu) 
      var iClassContainer = new HtmlGenericControl("span"); 
      iClassContainer.Attributes.Add("class", "pull-right-container"); 

      //ikona pro šipku ukazující možnost rozbalení menu 
      var iClass = new HtmlGenericControl("i"); 
      iClass.Attributes.Add("class", "fa fa-angle-left pull-right"); 

      li.Attributes.Add("class", "treeview expandable"); 
      if (!string.IsNullOrEmpty(item.Name)) 
      { 
       var ahref = new HtmlGenericControl("a"); 
       ahref.InnerText = item.Name; 
       ahref.Attributes.Add("class", "tree-toggler nav-header"); 
       ahref.Attributes.Add("id", item.Id.ToString()); 

       // add <a href> to <li> 
       li.Children.Add(ahref); 

       // add <span> container to <a href> 
       ahref.Children.Add(iClassContainer); 

       // add <i class> to <span> which contains icon 
       iClassContainer.Children.Add(iClass); 
      } 

      var childContainer = new HtmlGenericControl("ul"); 
      childContainer.Attributes.Add("class", "nav nav-list tree"); 
      childContainer.Attributes.Add("style", "display:none;"); 

      foreach (var child in item.AssignedToMenuItem) 
      { 
       DataBindItem(childContainer, child, context); 
      } 

      li.Children.Add(childContainer); 
     } 
     else 
     { 
      li.Attributes.Add("style", "treeview"); 
      if (item.RouteName != null) 
      { 
       var routeLink = new RouteLink(); 
       routeLink.RouteName = item.RouteName; 
       routeLink.Text = item.Name; 
       routeLink.Attributes.Add("class", "js_isRoute_" + item.Id.ToString()); 
       routeLink.Attributes.Add("id", item.Id.ToString()); 
       li.Children.Add(routeLink); 
      } 
     } 
     parent.Children.Add(li); 
    } 

問題は、私の全体の構造である私のコードですが、私はこれだけを参照してください。私の<a href>タグには、spaniも含まれている必要があります。

enter image description here

マイstructreが正しくレンダリングされたが、対中デバッグモードで私のコンポーネントで、私はそれが正しく生成参照されていません。私は間違っている?

enter image description here

答えて

関連する問題