默认值 0 正在蔓延到我正在开发的调查应用程序中,我看不到任何原因。问题如下:
我有一组 Html.RadioButtons 代表用户可以选择回答调查问题的可能值(1 == 一点也不,2 == 一点,3 == 很多)。我使用了一个不允许 null 的 tinyint 数据类型来存储每个问题的答案。
视图代码如下所示:
<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>
[注意上面的代码:]
每个调查有大约 70 个问题,所以我将问题文本放在一个表中,并将结果存储在另一个表中。我已将问题放入我的表单视图模型(因此是 Model.Questions);问题表有一个名为 QuestionColumn 的字段,它允许我将答案表列链接到问题,如上所示(<%= Html.RadioButton(col, "1")%> 等)
[/笔记]
但是,当用户没有回答问题时,值 0 将被插入到数据库列中。如果用户没有选择任何单选按钮,我会期望 Null。
结果,我没有得到我期望的结果,即由于 null 值(没有用户输入)导致的验证错误。
我在任何地方都没有为答案表中的字段规定默认值 0。
那么发生了什么?有任何想法吗?