问题描述
||
我需要在RadioButtonList中显示列表,如下所示:
@ 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
不接受(string,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)