Une valeur par défaut de 0 se glisse dans une application Surveys que je développe, sans aucune raison que je puisse voir. Le problème est le suivant:Groupe Html.RadioButton par défaut à 0
J'ai un groupe de Html.RadioButtons qui représentent les valeurs possibles qu'un utilisateur peut choisir pour répondre à une question d'enquête (1 == Pas du tout, 2 == Un peu, 3 == A lot). J'ai utilisé un type de données tinyint, qui ne permet pas null, pour stocker la réponse à chaque question.
Le code de vue ressemble à ceci:
<ol class="SurveyQuestions">
<% foreach (SurveyQuestion question in Model.Questions)
{
string col = question.QuestionColumn;
%>
<li><%=question.QuestionText%>
<ul style="float:right;" class="MultiChoice">
<li><%= Html.RadioButton(col, "1")%></li>
<li><%= Html.RadioButton(col, "2")%></li>
<li><%= Html.RadioButton(col, "3")%></li>
</ul>
<%= Html.ValidationMessage(col, "*") %>
</li>
<% } %>
</ol>
[Note sur le code ci-dessus:]
Chaque enquête a environ 70 questions, donc je mets le texte de la question dans une table, et le magasin les résultats dans un tableau différent. J'ai mis les questions dans mon modèle de vue de formulaire (d'où Model.Questions); la table des questions a un champ appelé QuestionColumn qui me permet de lier la colonne de la table de réponses à la question, comme montré ci-dessus (<% = Html.RadioButton (col, "1")%>, etc.)
[/ Note]
Cependant, lorsque l'utilisateur ne répond PAS à la question, la valeur 0 est insérée dans la colonne de la base de données. Je m'attendrais à Null si l'utilisateur ne sélectionne aucun des boutons radio. Par conséquent, je n'obtiens pas ce que j'attends, c'est-à-dire une erreur de validation due à la valeur nulle (pas d'entrée de l'utilisateur).
En aucun endroit j'ai stipulé une valeur par défaut de 0 pour les champs dans la table des réponses.
Alors, que se passe-t-il? Des idées?
@awrigley - bonne solution de contournement! –