Как я могу создать RadioButtonList в MVC View через класс HTML (синтаксис Razor) - PullRequest
1 голос
/ 26 мая 2011

Мне нужно показать мой список в 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();

        }

1 Ответ

12 голосов
/ 26 мая 2011

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...