43 votes

Comment définir RadioButtonFor () dans ASp.net MVC 2 comme vérifié par défaut

Comment puis-je définir RadioButtonFor () comme vérifié par défaut

 <%=Html.RadioButtonFor(m => m.Gender,"Male")%>
 

il y a moyen de sortir pour (Html.RadioButton) mais pas pour (Html.RadioButtonFor)

des idées?

81voto

Gabriel Militello Points 461

Utilisez le moyen simple:

 <%= Html.RadioButtonFor(m => m.Gender, "Male", new { Checked = "checked" })%>
 

16voto

Adrian Grigore Points 15993

Ce n'est pas trop joli, mais si vous ne devez implémenter que très peu de boutons radio pour l'ensemble du site, quelque chose comme ça pourrait également être une option:

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

14voto

Allen Wang Points 408

Je suppose que vous devriez avoir un groupe de boutons radio. quelque chose pourrait être comme

 <%=Html.RadioButtonFor(m => m.Gender,"Male")%>
<%=Html.RadioButtonFor(m => m.Gender,"Female")%>
<%=Html.RadioButtonFor(m => m.Gender,"Unknown")%>
 

Vous pouvez donner la valeur par défaut pour m.Gender = "Unknown" (ou quelque chose) à partir de votre contrôleur.

12voto

Mac Points 1960

Cette question sur StackOverflow concerne RadioButtonListFor et la réponse répond également à votre question. Vous pouvez définir la propriété sélectionnée dans RadioButtonListViewModel.

8voto

Alex LE Points 6277

Cet Helper évalue l'expression et s'il est égal à la valeur, il vérifie le bouton radio et a les mêmes paramètres que RadioButtonFor (pour cette raison, le nom est différent):

 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);
}
 

Usage:

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

Résultat:

 <!-- 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">
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X