是否有相当于HTML.DropDownList在MVC3中创建无序列表?

时间:2012-04-04 06:03:19

标签: asp.net-mvc asp.net-mvc-3

在我的控制器中,我使用以下内容:

ViewBag.ReferenceId = new SelectList(_reference.Get("00")
   .AsEnumerable()
   .OrderBy(o => o.Order), "RowKey", "Value", "00");

然后在我看来,我使用以下扩展名创建一个下拉列表:

@Html.DropDownList("ReferenceID", 
   null, 
   new { 
     id = "ReferenceID", 
     @class = "combobox2", 
     style="width: 150px;"
   }
)

现在我想更改此内容以创建无序列表。如下所示:

<ul id="categories" class="pane list">
   <li><a href="#">Websites</a></li>
   <li><a href="#">Web Design</a></li>
   <li><a href="#">Print</a></li>
</ul>

是否有任何MVC扩展程序可以为我执行此操作,还是有一种简单的方法可以编写代码?

2 个答案:

答案 0 :(得分:1)

没有相应的,但你可以像这样写自己:

tagsList = "<ul>{0}</ul>";
tagsListItem = "<li>{0}</li>";
StringBuilder result = new StringBuilder();
list.ForEach(listItem => result.AppendFormat(tagsListItem, item.ToString()));
return string.Format(tagsList, result.ToString());

您可以根据需要调整代码(例如添加其他标签,属性等)。

答案 1 :(得分:1)

编写您的HtmlHelper http://www.asp.net/mvc/tutorials/older-versions/views/creating-custom-html-helpers-cs,但最好的方法是浏览MVC源代码并学习http://aspnet.codeplex.com/SourceControl/changeset/view/72551#288014或使用foreach。

<ul id="categories" class="pane list">
@foreach(var category in categories)
{
  <li><a href="#">@category</a></li>
}

</ul>

此致