Asp.net mvc 5 MVC5 dropdownlist用于值'-1';不适用于

Asp.net mvc 5 MVC5 dropdownlist用于值'-1';不适用于,asp.net-mvc-5,dropdownlistfor,Asp.net Mvc 5,Dropdownlistfor,我有一个奇怪的情况。我和MVC5一起工作 我启用了客户端验证 在我的表格中,我有一个dropdownlistfor,第一项是“请选择…”,该项的值“请选择…”自动设置为值-1 现在,当我单击表单上的“保存”按钮时,没有在dropdownlist中选择任何项目,客户端验证将不会发生。表单将被提交,然后Modelstate.Valid=false。该视图将再次显示,并在DropDownList上显示一个验证错误,表示“值'-1'对所有者无效” 1) 我不希望消息是“值'-1'对所有者无效”。我能调整

我有一个奇怪的情况。我和MVC5一起工作 我启用了客户端验证

在我的表格中,我有一个dropdownlistfor,第一项是“请选择…”,该项的值“请选择…”自动设置为值-1

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

1) 我不希望消息是“值'-1'对所有者无效”。我能调整一下这个信息吗? 2) 如何确保客户端验证会发生并阻止回发

当我在drownlist中选择第一个选项“Please select…”并单击屏幕中的其他位置时,客户端验证确实起作用。我看到了错误消息,但我仍然可以单击“保存”按钮并提交表单

有人有什么线索吗? 我在网上找不到这样的东西

我有一个具有以下属性的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)

材质设计脚本正在调整选择。感谢Stephen指向此方向

标签选项的值未设置为
-1
。将其设置为
null
-它生成
选择值…
,作为旁注,您的
[RegularExpression]
属性在我的情况下不需要选择值的值。。。设置为-1。除非您编写了设置itI的其他代码,否则不可能。除上述代码外,我没有编写任何其他代码。我没有用于下拉列表的编辑器或显示模板。纯粹的mvc