【问题标题】:How can I create a RadioButtonList in a MVC View via HTML class ( Razor syntax )如何通过 HTML 类在 MVC 视图中创建 RadioButtonList(Razor 语法)
【发布时间】:2011-05-26 00:21:02
【问题描述】:

我需要在 RadioButtonList 中显示我的列表,如下所示: @Html.RadioButtonList("FeatureList", new SelectList(ViewBag.Features)) 但如您所知,HTML Helper 类中没有 RadioButtonList 类,当我使用时: @Html.RadioButton("FeatureList", new SelectList(ViewBag.Features)) 它向我显示了一个空白列表! // 控制器代码:

 public ActionResult Rules()
        {

            ViewBag.Features = (from m in Db.Features where m.ParentID == 3 select m.Name);
            return View();

        }

【问题讨论】:

    标签: asp.net-mvc-3


    【解决方案1】:

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 2011-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多