我的页面中有dropdown
个列表,该列表使用enum
列表进行绑定。
我的enum
看起来像
public enum PaymentType
{
/// <summary>
/// The Cash
/// </summary>
Cash = 0,
/// <summary>
/// The Credit
/// </summary>
Credit = 1,
/// <summary>
/// The Debit
/// </summary>
Debit = 2
}
我将这个枚举绑定到如下所示的下拉列表中
<select class="select-text" id="paymentType" asp-
for="PurchaseOrder.PaymentType" required asp-items="@(new
SelectList(Model.PaymentTypes, "Id", "Name"))">
<option selected="selected" value ="">--Select payment type--</option>
</select>
问题就像PurchaseOrder.PaymentType
是一个整数字段,因此此处的默认值为0
,这使我的dropdown
始终选择为Cash
。我知道使PurchaseOrder.PaymentType
可为空是一种选择,但我希望将字段设为不可为空。
我已经厌倦了在选择中添加value=""
并在默认选项中尝试了selected="selected"
,但是没有任何效果。
有人可以通过标签帮助程序语法帮助我解决此问题吗?
答案 0 :(得分:2)
由于您具有“空白”选项,因此采购订单的PaymentType
属性应该可以为空。您可以在其上使用[Required]
属性,以强制用户必须实际提交值。
如果由于直接使用实体类而无法执行此操作,请停止这样做。始终始终使用视图模型。
答案 1 :(得分:1)
您需要SelectList(IEnumerable, String, String, Object, String)重载。
通过使用以下命令初始化SelectList类的新实例: 列表,数据值字段,数据文本的指定项目 字段,选定值和数据组字段。
例如在您的代码中:
SelectList(Model.PaymentTypes, "Id", "Name", 1)