Je suis stupéfait du peu d'exemples que l'on trouve sur Internet, je vais essayer ici, d'y remédier en vous donnant le mien. J'ai mis tu temps à trouver la page suivante dans MSDN :
![]() |
Rendering a Form in ASP.NET MVC Using HTML Helpers |
https://msdn.microsoft.com/en-us/library/dd410596(v=vs.100).aspx
Exemples, un peu intéressant d'utilisation des fonctions Html.Helpers même si ce n'est pas du Razor...
Les autres pages n'ont vraiment aucun intérêt ! Et pourtant, lorsque l'on cherche sur Internet, on retombe toujours dessus ! Par exemple la page :
https://msdn.microsoft.com/en-us/library/system.web.mvc.html.inputextensions.radiobutton(v=vs.100).aspx
ne vous apprendra aucunement à utiliser la fonction @Html.RadioButton. Elle n'a aucun intérêt. C'est assez incroyable !
Même le site de StackOverFlow est relativement muet :
http://stackoverflow.com/questions/14313475/how-to-add-a-htmlattributes-in-this-htmlhelper
Un exemple, pas très intéressant ...
http://stackoverflow.com/questions/23382612/set-a-radiobuttonfor-checked-by-default-within-a-foreach-loop
Là c'est intéressant, la remarque de "martennis" est la bonne : Si l'attribut "checked" est présent, peu importe ce qu'il y dedans ! Le bouton sera coché ! Et comme c'est une radiolist, ce sera le dernier qui sera coché ! Incroyable à croire que cela n'intéresse personne ... ASP.NET MVC est mort et on ne m'a pas prévenu ???
ToBeContinued ...
Concernant la gestion des RadioButton, il y a plein de problèmes mais voici le début d'une solution :
J'ai donc passé un bon moment à triturer ces exemples, à essayer un tas choses qui n'ont pas fonctionnées, pour finalement trouver le début d'une solution.
RadioButton Html Helper Solution
Controller
public ActionResult PageItems()
{
var items = new List<SelectListItem>
{
new SelectListItem { Value = "1", Text = "Blue", Disabled = false },
new SelectListItem { Value = "2", Text = "Red" },
new SelectListItem { Value = "3", Text = "Green", Selected = true },
new SelectListItem { Value = "4", Text = "Yellow", Selected = true },
new SelectListItem { Value = "5", Text = "Black" }
};
return View( items );
}
View
@model List<SelectListItem>
<table style="margin:30px;">
@foreach ( var item in Model )
{
<tr>
<td>
@Html.RadioButtonFor( m => item.Text, "name_value" , item.Selected == true ? (object)new { @checked = "checked" } : new { } ) @item.Text
</td>
</tr>
}
</table>
Voilà donc comment on utilise correctement la paramètre "Object htmlAttributes" pour sélectionner automatiquement le SelectListItem d'une list de Radiobox au démarrage de la page.
Voici le résultat de l'exécution
![]() |
Enfin un RadioButton issue d'un @Html.Helper avec le bon item "selected" |
Bien utile. merci
RépondreSupprimer