如何通过HTML类Razor语法在MVC视图中创建RadioButtonList

问题描述

|| 我需要在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)
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...