如何在ASp.net MVC 2中将RadioButtonFor()设置为默认选中

coo*_*y97 42 radiobuttonfor asp.net-mvc-2

如何将RadioButtonFor()设置为默认选中

<%=Html.RadioButtonFor(m => m.Gender,"Male")%>
Run Code Online (Sandbox Code Playgroud)

(Html.RadioButton)有出路而不是(Html.RadioButtonFor)

有任何想法吗?

小智 78

使用简单的方法:

<%= Html.RadioButtonFor(m => m.Gender, "Male", new { Checked = "checked" })%>
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!也可以是`new {@checked ="checked"}`. (18认同)

Adr*_*ore 15

它不是太漂亮,但如果你只需要为整个网站实现很少的单选按钮,这样的东西也可能是一个选项:

<%=Html.RadioButtonFor(m => m.Gender,"Male",Model.Gender=="Male" ? new { @checked = "checked" } : null)%>


All*_*ang 14

我假设你应该有一组单选按钮.事情可能会像

<%=Html.RadioButtonFor(m => m.Gender,"Male")%>
<%=Html.RadioButtonFor(m => m.Gender,"Female")%>
<%=Html.RadioButtonFor(m => m.Gender,"Unknown")%>
Run Code Online (Sandbox Code Playgroud)

您可以从控制器中为m.Gender ="Unknown"(或其他内容)指定默认值.

  • 我也很努力,但发现这个答案很简单.如果你在模型上创建一个属性,那么在模型的默认构造函数中,设置Gender,只需将该属性设置为默认性别,如`Gender ="Male";`.如果这样做,mvc.net将自动选择默认值,并且在回发时会自动将所选值绑定到您的Gender属性. (5认同)

Mac*_*Mac 9

StackOverflow上的这个问题处理RadioButtonListFor,答案也解决了你的问题.您可以在RadioButtonListViewModel中设置selected属性.


Ale*_* LE 8

此Helper计算表达式,如果等于它检查单选按钮的值,并且具有与RadioButtonFor相同的参数(因此名称不同):

public static MvcHtmlString CheckedRadioButtonFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, object value)
{
    return CheckedRadioButtonFor(htmlHelper, expression, value, null);
}

public static MvcHtmlString CheckedRadioButtonFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, object value, object htmlAttributes)
{
    var func = expression.Compile();
    var attributes = new RouteValueDictionary(htmlAttributes);
    if ((object)func(htmlHelper.ViewData.Model) == value) {
        attributes["checked"] = "checked";
    }
    return htmlHelper.RadioButtonFor(expression, value, attributes);
}
Run Code Online (Sandbox Code Playgroud)

用法:

<%= Html.CheckedRadioButtonFor(m => m.Gender, "Male", new { id = "gender-male" })%>
Run Code Online (Sandbox Code Playgroud)

结果:

<!-- For Model.Gender = "Male" -->
<input checked="checked" id="gender-male" name="Gender" type="radio" value="Male">
<!-- For Model.Gender = "Female" -->
<input id="gender-male" name="Gender" type="radio" value="Male">
Run Code Online (Sandbox Code Playgroud)