具有预选值的 MVC 下拉列表不允许在字段为必填字段时提交表单



我有一个由状态填充的下拉列表。加载"更新地址"页时,已填写字段并选择状态。我在模型内的此状态字段中添加了数据注释"必需",但它不允许预设该值。它不显示消息,但我无法提交表单,我需要选择状态才能提交表单(我猜重新选择(。如何告诉表单预选值是要验证的值?

[Required(ErrorMessageResourceType = typeof(Resources), ErrorMessageResourceName = "StateRequired")]   
public string State { get; set; }
@Html.DropDownListFor(m => m.State, (IEnumerable<SelectListItem>)Model.StatesList, Model.SelectedState, new { @class = "form-control form-select" })

SelectedState是一个模型属性,其用户地址的 Db 值已存储在 DB 中。

好的,这是解决方案,@LarryBud评论指出了我正确的方向。

所以基本上,所选值不是在列表中设置的,而是有人在文本"选择状态"正常的位置添加了该值,因此状态显示但不是列表的一部分。

我只是将用户的状态标记为在状态列表中处于选中状态,它解决了。

DDList.Add(new SelectListItem() { Text = row["State"].ToString(), Value = row["Abbreviation"].ToString(), Selected = true });

最新更新