是否可以使用下拉列表的数据注释属性有效,仅当用户选择的值不同于值为o(零)的选项时。 值为o(零)的选项为“请选择一个帐户”,默认情况下已选中。 我使用[必需]属性来验证此下拉列表,但它没有任何效果,因为,我如何说,默认情况下,选项值为o(零) - “请选择一个帐户” - 被选中。
答案 0 :(得分:1)
类似的东西:
[Range(1, int.MaxValue, ErrorMessage = "Please enter a value bigger than {1}")]
public int Value { get; set; }
答案 1 :(得分:1)
制作一个下拉列表是没有意义的。您需要的是用户从下拉列表中选择一个非零值。那么应该需要的是SelectedAccount属性。您应该使用MVC帮助器方法将下拉选择的值绑定到SelectedAccount属性:
@Html.DropdownListFor(m => m.SelectedAccount, new SelectList(Model.Accounts))
我可能关闭了语法,但你可以看一下。
现在关于确保价值不为零的其他问题。帐号是表示为数字还是包含非数字字符?如果它是一个数字,那么您应该在代码中表示它。如果它确实是一个字符串,那么下拉列表的第一个值应该是一个空字符串而不是零。
如果您确定它是一个数字,那么使用Range注释来确保该值大于零:
[Required]
[Range(1, Int32.MaxValue)]
public string SelectedAccountNumber {get;set;}
希望有所帮助!