MVC5 DropdownlistFor值' -1'无效

时间:2018-06-08 10:37:46

标签: asp.net-mvc-5 dropdownlistfor

我有一个奇怪的情况。我正在使用MVC5 我启用了客户端验证。

在我的表单中,我有一个带有&#34的下拉列表;请选择..."作为第一项,此项目的价值"请选择..."自动设置为值-1。

现在,当我点击"保存"我的表单上的按钮,没有选择下拉列表中的任何项目,客户端验证将不会发生。表单将被提交,然后Modelstate.Valid = false。该视图将再次显示在下拉列表中的验证错误,表示:"值' -1'对于所有者"无效。

1)我不希望消息是"值' -1'对所有者无效"。所以我可以以某种方式调整此消息? 2)如何确保客户端验证发生并阻止回发

当我选择第一个选项"请选择..."在drodownlist中并单击屏幕中的其他位置,客户端验证确实有效。我看到了我的错误消息,但我仍然可以点击保存按钮并提交表单。

有没有人有任何线索? 我在网上找不到这样的东西

我有一个具有以下属性的Viewmodel:

[Required(ErrorMessage = "Owner is required.")]
// Any guid but not an empty guid. 
[RegularExpression(@"^(\{{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}\}{0,1})$", ErrorMessage = "Owner is required.")]
public Guid OwnerId { get; set; }

public SelectList Owners { get; set; }

在我的剃刀中我有:

@Html.DropDownListFor(model => model.OwnerId, Model.Owners, "Select a value...", new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.OwnerId)

1 个答案:

答案 0 :(得分:0)

材料设计脚本正在调整选择。感谢Stephen指出这个方向