Je ne l'ai pas regardé pour ce problème du tout, mais je pensais donner un coup de main dans le compactage un peu le code.
Pour faire le suivi d'un peu moins bavard:
<% if (ViewData[item.Name] == null)
{ %>
<%= Html.RadioButton("defaultNAME", item.Name)%>
<% }
else
{%>
<%= Html.RadioButton("defaultNAME", item.Name,
(bool)ViewData[item.Name])%>
<% } %>
Vous pouvez faire ceci:
<%= ViewData[item.Name] == null ? Html.RadioButton("defaultNAME", item.Name) : Html.RadioButton("defaultNAME", item.Name, (bool)ViewData[item.Name]) %>
Je sais que cela ne suffit pas à votre question tout, mais étant donné que cela est assez Code straightforeward , Je pense que c'est un bon candidat pour serrer ces huit ou neuf lignes en une seule.
Bonne chance!
EDIT:
J'ai réalisé après la présentation que cela peut être encore plus courte. Un seul appel à Html.RadioButton()
est nécessaire. En utilisant l'opérateur null coalescing, nous pouvons simplement saisir une valeur par défaut si ViewData [item.Name] est null. N'hésitez pas à coder en dur votre valeur par défaut au lieu de la spécifier dans une variable. Je l'ai fait juste pour rendre l'exemple plus clair. Les trois blocs de code sont sémantiquement équivalents (bien qu'ils devraient produire une IL assez différente, étant donné que le premier bloc tombe dans et hors du balisage ASP).
Voir aussi http://stackoverflow.com/questions/263336/asp-net-mvc-radio-button-state –