asp.net-mvc-3 – 如何通过HTML类(Razor语法)在MVC视图中创建RadioButtonList

前端之家收集整理的这篇文章主要介绍了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)

猜你在找的asp.Net相关文章