在尝试解决我遇到的问题时,今天注意到了新事物。
视图模型:
[Required]
public PaymentOption PaymentOption { get; set; }
Enum:
public enum PaymentOption
{
CreditCard,
Invoice
}
查看:
<div>
@Html.RadioButtonFor(x => x.PaymentOption, PaymentOption.CreditCard, new Dictionary<string, object> {{ "id" , "cc" }}) Credit Card
@Html.RadioButtonFor(x => x.PaymentOption, PaymentOption.Invoice, new Dictionary<string, object> {{ "id" , "in" }}) Invoice
</div>
如果我现在将PaymentOption
属性更改为int
,则在渲染视图时,默认情况下不会检查任何单选按钮。
public int PaymentOption { get; set; }
如果PaymentOption
属性为PaymentOption
枚举,则默认情况下会检查其中一个单选按钮,并且在html源中,输入单选按钮为checked=checked
。
public PaymentOption PaymentOption { get; set; }
为什么会这样?对于int
属性,enum
和PaymentOption
不应该相同吗?