MVC Razor RadioButtonFor:如何没有预设@checked?
MVC Razor RadioButtonFor: How to have NO preset @checked?
@for (var b = 0; b < 11; b++)
{
@Html.RadioButtonFor(model => Model.LikelyToReturn, @b, new { @checked = false })
}
如果我遗漏了
new { @checked = false }
然后默认选中第一个单选按钮。如果我包含它,则默认情况下会选中最后一个。默认情况下,我将如何检查其中的 NONE 个?
编辑后:
这是型号:
public class PatientSatisfactionSurveyPage : Page
{
//non important stuff removed
public int LikelyToReturn { get; set; }
public PatientSatisfactionSurveyPage() { }
}
整数的默认值为 0,因此它总是 select 第一个值也为 0 的整数。要获得结果,您必须设置 Model.LikelyToReturn
可以为空。
public class yourClassName
{
public int? LikelyToReturn { get; set; }
}
我能够通过自己的测试重现这一点。
之所以选择最后一个单选按钮是因为您的checked = false
。 checked
属性的存在意味着单选按钮应该被选中。您可以使用 checked = "casey-is-awesome!"
之类的内容,然后将选中组中的单选按钮之一。
如果您不想选择任何按钮,则只需完全忽略选中的属性即可。如果您仍有问题,请 post 您的模型和任何相关的控制器代码。
编辑
改变
public int LikelyToReturn { get; set; }
到
public int? LikelyToReturn { get; set; }
.
int
的默认值为 0。由于 0 被用作第一个单选按钮的值,因此 ASP.NET MVC 框架自动将其标记为选中,因为该值与模型中的值。通过切换到可为空的 int,默认值将为 null,因此框架不会自动将其标记为选中
@for (var b = 0; b < 11; b++)
{
@Html.RadioButtonFor(model => Model.LikelyToReturn, @b, new { @checked = false })
}
如果我遗漏了
new { @checked = false }
然后默认选中第一个单选按钮。如果我包含它,则默认情况下会选中最后一个。默认情况下,我将如何检查其中的 NONE 个?
编辑后:
这是型号:
public class PatientSatisfactionSurveyPage : Page
{
//non important stuff removed
public int LikelyToReturn { get; set; }
public PatientSatisfactionSurveyPage() { }
}
整数的默认值为 0,因此它总是 select 第一个值也为 0 的整数。要获得结果,您必须设置 Model.LikelyToReturn
可以为空。
public class yourClassName
{
public int? LikelyToReturn { get; set; }
}
我能够通过自己的测试重现这一点。
之所以选择最后一个单选按钮是因为您的checked = false
。 checked
属性的存在意味着单选按钮应该被选中。您可以使用 checked = "casey-is-awesome!"
之类的内容,然后将选中组中的单选按钮之一。
如果您不想选择任何按钮,则只需完全忽略选中的属性即可。如果您仍有问题,请 post 您的模型和任何相关的控制器代码。
编辑
改变
public int LikelyToReturn { get; set; }
到
public int? LikelyToReturn { get; set; }
.
int
的默认值为 0。由于 0 被用作第一个单选按钮的值,因此 ASP.NET MVC 框架自动将其标记为选中,因为该值与模型中的值。通过切换到可为空的 int,默认值将为 null,因此框架不会自动将其标记为选中