MVC&单选按钮列表

时间:2008-12-05 22:29:45

标签: asp.net-mvc html.radiobuttonlist

我试过这样做,但这只显示旁边没有文字的单选按钮..

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

6 个答案:

答案 0 :(得分:12)

Elijah Manor写了关于ASP.NET MVC 1.0中同样的问题:

ASP.NET MVC Html.RadioButtonList Blues

他决定遍历他的DataSource并创建单独的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>
<% } %>

答案 1 :(得分:8)

过去曾在预览中删除过。

如果你在期货中找不到它,请试试这样的

<% 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 />
<% } %>

答案 2 :(得分:7)

如果是我,我会使用一系列静态HTML元素。我知道有些人会考虑对ASP时间做这样的回归,但它简化了IMO的事情,最终使得更加可靠和可预期[所以我制定了一个词] GUI。

答案 3 :(得分:6)

@{
    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/>
}

答案 4 :(得分:0)

查看好帮手Daniel Gidman,2012年6月14日,here。 他为MVC中的RadioButtonList创建了一个漂亮而完美的帮助器。

答案 5 :(得分:-1)

查看codeplex上MVC source中提供的MVC Futures DLL。在其中有一个HtmlHelper扩展来呈现RadioButton列表。它可以在ViewData中自动呈现SelectList,也可以显式传递。有几种重载可满足不同需求。