0
在ASP.NET MVC3中,我认为它已成为一个已知问题,而我只是没有找到正确的答案来解决我的问题。如何绑定MVC3中的枚举值以选择正确的枚举值?
我有一个枚举这样的事情
public enum CardType
{
[Description("")]
None = 0,
Visa = 1,
Mastercard = 2,
Discover = 3,
[Description("American Express")]
AmericanExpress = 4
}
现在正确的任期将是这样的事情正在被从数据库中的表拉,因为我只感到我已经启用了某些类型的卡马上。我们只有Visa/Mastercard
<select name="CardType" id="CardType">
<option value="1">Visa</option>
<option value="2">Mastercard</option>
</select>
现在让我们说我想要万事达被默认选中。我必须这样做
现在我没有这个部分的问题,这并不总是没有前途的工作。有时它会通过“万事达卡”而不是通过的数字值......我对如何解决这个问题感到困惑......只有几个我不想使用的解决方案,如果我可以帮助它,因为它只是意味着更多的工作...
否CardType是表中的一个属性,我只是将其转换为整数。将它设置为Mastercard的数据库中的ID为2的问题例如...它不选择第一个,因为它是选择列表中的第一个选项。如果我通过HttpPost提交数据,或者它不会根据值设置值。这是应该工作的。 – Benjamin
哦,更不用说当前的Select DropDownList代码工作的方式是它试图设置选定的值。基本上它不会使用我所做的“选择列表”,即使是新的SelectList等也不起作用,因为它期望像“MasterCard”这样的数值而不是2,所以理论上“2”==“ MasterCard“是False ...这就是问题所在,我开始认为我必须克隆Select Internal来更好地处理比较”Enum.ToString“的比较,如果比较失败,它会尝试比较数值比较... – Benjamin
填写所有选择值为False默认值是什么问题?该ID与Enum索引是否匹配?所以当你在SelectList中选择正确的,那么这应该是正确的?你为什么使用ToString()?您可以完美地将Int值推入SelectListItem值。 –