如果model属性为null,则取消选中默认单选按钮

时间:2014-05-27 14:29:08

标签: c# asp.net-mvc razor

当用户第一次加载页面并且没有做出选择时,我需要取消选中单选按钮。一旦他们选择了一个选项,我需要它来保存他们的选择。由于它必须基于模型中的数据,似乎jQuery已经出局了。

模型

public enum AccountType
{
    Checking,
    Savings
}

 public AccountType DDAccountType { get; set; }

数据访问

if (oReader["DDAccountType"] != DBNull.Value)
  model.DDAccountType = (oReader["DDAccountType"].ToString() == "Checking") ? AccountType.Checking : AccountType.Savings;

剃刀

Checking @Html.RadioButtonFor(m => m.myModel.DDAccountType, "Checking")
Savings @Html.RadioButtonFor(m => m.myModel.DDAccountType, "Savings")

我的猜测是因为模型值永远不会被设置为null,所以单选按钮将被取消选中,但它总是按Tab键顺序选择第一个。

1 个答案:

答案 0 :(得分:1)

将您的财产更改为:

public AccountType? DDAccountType { get; set; }

您需要允许它可以为空,否则将始终从枚举中传递默认值,从而导致始终检查其中一个项目。如果您需要该属性,您仍然可以通过添加[Required]属性来指示需要存在某个值,如果实际传回null值,则会生成ModelState错误。