MVC & RadioButtonList - PullRequest
       44

MVC & RadioButtonList

19 голосов
/ 06 декабря 2008

Я пытался сделать это, но это отображало только радиокнопку без текста рядом с ней ..

<% foreach (string s in Html.RadioButtonList("rbl")) {%>
    <% =s %>
<% } %> 

Ответы [ 6 ]

12 голосов
/ 03 апреля 2009

Илия Усадьба писал о той же проблеме в ASP.NET MVC 1.0:

ASP.NET MVC Html.RadioButtonList Blues

Он решил перебрать свой источник данных и создать отдельные комбинации Html.RadioButton и Label.

<!-- After using and looking at the code for the Html.RadioButtonList in the ASP.NET MVC 1.0 RTM codebase, I'm not sure how it is supposed to be useful. It only outputs the actual input radio button and doesn't render any corresponding labels. To get around this I ended up writing a foreach creating individual Html.RadioButton and labels -->
<%
var radioButtonList = new SelectList(new List<ListItem> {
    new ListItem { Text = "Current", Value="false", Selected=true },
    new ListItem { Text = "Other", Value="true"}}, "Value", "Text", "false");
var htmlAttributes = new Dictionary<string, object> {
    { "class", "radioButtonList" },
    { "onclick", "if(eval(this.value)) { $('#tblDate').show('slow'); } else { $('#tblDate').hide('slow'); }" }
};
foreach (var radiobutton in radioButtonList) { %>
    <%=Html.RadioButton("rblDate", radiobutton.Value, radiobutton.Selected, htmlAttributes)%>
    <label><%=radiobutton.Text%></label>
<% } %>
8 голосов
/ 04 января 2009

Раньше был в превью, но был удален.

Если вы не можете найти его в будущем, попробуйте что-то вроде этого

<% foreach (Model model in Models))
   {
%><%= String.Format("<input type=\"radio\" value=\"{0}\" name=\"{1}\" id=\"{2}\"><label for=\"{2}\">{3}</label>",
        model.ID, "fieldName", model.modelID, model.Name)  %><br />
<% } %>
7 голосов
/ 09 декабря 2008

Если бы это был я, я бы просто использовал серию статических элементов HTML. Я знаю, что некоторые думают о таком возврате к дням ASP, но это упрощает IMO и в итоге создает более надежный и ожидаемый графический интерфейс.

6 голосов
/ 30 августа 2012
@{
    var radioButtonList = new SelectList(new List<ListItem> {
    new ListItem { Text = "1", Value="true", Selected=true },
    new ListItem { Text = "2", Value="false"},
    new ListItem { Text = "3", Value="false"},
    new ListItem { Text = "4", Value="false"},

    }, "Value", "Text", "false");

    var htmlAttributes = new Dictionary<string, object> {
    { "class", "radioButtonList" },
    { "onclick", "if(eval(this.value)) { $('#tblDate').show('slow'); } else { $('#tblDate').hide('slow'); }" }
};    
            }

@foreach (var radiobutton in radioButtonList) { 

  @Html.RadioButtonFor(m => m.ContactDepartment,  @radiobutton.Text) @radiobutton.Text

    <br/>
}
0 голосов
/ 27 июля 2013

См. Хороший помощник. Даниэль Гидман, 14 июня 2012, здесь . Он создал хорошего и идеального помощника для RadioButtonList в MVC.

0 голосов
/ 10 декабря 2008

Проверьте библиотеку MVC Futures, доступную в источнике MVC в кодекплексе. В нем есть расширение HtmlHelper для рендеринга списков RadioButton. Он может автоматически отображать SelectList в ViewData или вы можете передать его явно. Для различных нужд доступно несколько перегрузок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...