创建一个函数来传递html控件“ui”作为参数。

时间:2013-09-13 14:13:58

标签: c# html asp.net html-lists

我有6个UL,每个UL内部动态生成li来自服务器端。现在6 UL我正在重复做6次。有没有办法我可以创建一个函数来传递ul作为函数中的参数,并使用不同的ul元素调用相同的函数。

现在我有了这个

<ul ID="ul_1"></ul>
<ul ID="ul_2"></ul>  
<ul id="ul_3"></ul>
<ul id="ul_4"></ul>

populat的服务器端代码就像这样

foreach (String li in ListA)
{
    HtmlGenericControl uli = new HtmlGenericControl("li");
    uli.InnerHtml = li;
    ul_1.Controls.Add(uli);
}

我正在为每个4次使用此代码,但我正在尝试创建一个函数,以便我可以使用相同的函数只传递UL ID。我不知道......任何帮助人......

1 个答案:

答案 0 :(得分:0)

如果我正确地理解了你想要的东西,也许你可以尝试这样的东西。

<强>型号:

public class ListItem {
    public string Content { get; set; }
}

public class ListOfItems {
         public int Id { get; set; }
         public IList<ListItem> Items { get; set; }
}

查看(例如使用剃须刀):

@model IEnumerable<ListOfItems>
....
@foreach (var itemList in Model)
{ 
   <ul id="ul_@itemList.Id">
      @foreach(var item in itemList.Items) {
         <li>@item.Content</li>
      }
   </ul>
}

<强>控制器:

public ActionResult ViewList(){
   var model = new List<ListOfItems>();
   var listItem1 = new ListItem
   {
       Content = "My first list item!"
   };
   var listItem2 = new ListItem
   {
       Content = "My second list item!"
   };

   var listOfItems1 = new ListOfItems
   {
       Id = 1
   };

   listOfItems1.Item.Add(listItem1);
   listOfItems1.Item.Add(listItem2);

   model.Add(listOfItems1);
   return View(model);
}

一点点重构,你很高兴:)