我需要在RadioButtonList中显示我的列表,有些事情是这样的:
@ Html.RadioButtonList(“FeatureList”,新的SelectList(ViewBag.Features))
但是你知道HTML Helper类中没有RadioButtonList类,当我使用时:
@ Html.RadioButton(“FeatureList”,新的SelectList(ViewBag.Features))
它显示了一个空白列表!
//控制器代码:
@ Html.RadioButtonList(“FeatureList”,新的SelectList(ViewBag.Features))
但是你知道HTML Helper类中没有RadioButtonList类,当我使用时:
@ Html.RadioButton(“FeatureList”,新的SelectList(ViewBag.Features))
它显示了一个空白列表!
//控制器代码:
public ActionResult Rules() { ViewBag.Features = (from m in Db.Features where m.ParentID == 3 select m.Name); return View(); }
解决方法
Html.RadioButton不接受(字符串,SelectList)参数,所以我认为空白列表是预期的;)
你可以1)
在模型中使用foreach而不是单选按钮值,并使用Html.RadioButton(string,Object)重载来迭代您的值
// Options could be a List<string> or other appropriate // data type for your Feature.Name @foreach(var myValue in Model.Options) { @Html.RadioButton("nameOfList",myValue) }
或2)
为列表编写自己的帮助方法 – 可能看起来像这样(我从来没有写过这样的,所以你的里程可能会有所不同)
public static MvcHtmlString RadioButtonList(this HtmlHelper helper,string NameOfList,List<string> RadioOptions) { StringBuilder sb = new StringBuilder(); // put a similar foreach here foreach(var myOption in RadioOptions) { sb.Append(helper.RadioButton(NameOfList,myOption)); } return new MvcHtmlString(sb.ToString()); }
然后在您的视图中调用您的新助手(假设Model.Options仍然是List或其他适当的数据类型)
@Html.RadioButtonList("nameOfList",Model.Options)