2
@for (var b = 0; b < 11; b++)
  {
    @Html.RadioButtonFor(model => Model.LikelyToReturn, @b, new { @checked = false })
  }

如果我离开

new { @checked = false }

然后默认选中第一个单选按钮。如果我包含它,默认情况下会检查最后一个。默认情况下,我将如何不检查它们?

之后编辑:

这是模型:

public class PatientSatisfactionSurveyPage : Page
{
   //non important stuff removed
   public int LikelyToReturn { get; set; }
   public PatientSatisfactionSurveyPage() { }
}
4

2 回答 2

1

整数的默认值为 0,因此它始终选择第一个值为 0 的值。要获得结果,您必须设置Model.LikelyToReturn为可空。

public class yourClassName
{
    public int? LikelyToReturn { get; set; }
}
于 2015-05-26T19:24:08.527 回答
1

我能够通过自己的测试重现这一点。

选择最后一个单选按钮的原因是因为您的checked = false. 该checked属性的存在意味着应该检查单选按钮。您可以有类似的东西,checked = "casey-is-awesome!"并且将选择组中的一个单选按钮。

如果您不想选择任何按钮,则只需完全忽略选中的属性。如果您仍有问题,请发布您的模型和任何相关的控制器代码。

编辑

改变

public int LikelyToReturn { get; set; }

public int? LikelyToReturn { get; set; }.

int默认值为 0。由于 0 被用作第一个单选按钮的值,因此 ASP.NET MVC 框架自动将其标记为选中,因为该值与模型中的值匹配。通过切换到可为空的 int,默认值将为 null,因此框架不会自动将其标记为选中

于 2015-05-26T19:29:37.860 回答