asp.net-mvc-3 – 如何通过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不接受(字符串,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)

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...