我有一个具有如下属性的模型:
[Required]
public int SingleSelect { get; set; }
然后我在 Controller 中设置了一个 SelectList 并将其传递给 viewbag
public ActionResult Index()
{
ViewBag.SingleSelectList = new SelectList(new[]
{
new {ID="0",Name="-- Select --"},
new {ID="1",Name="Select 1"},
new{ID="2",Name="Select 2"},
new{ID="3",Name="Select 3"},
},
"ID", "Name", 0);
return View();
}
然后在 View() 上,我使用以下代码渲染一个漂亮的下拉框:
@Html.LabelFor(obj => obj.SingleSelect, new { @class = "control-label"})
@Html.DropDownListFor(obj => obj.SingleSelect, ViewBag.SingleSelectList as SelectList)
@Html.ValidationMessageFor(obj => obj.SingleSelect)
<button class="btn btn-primary" type="submit">Validate!</button>
如果用户未在表单提交上做出选择(仍在选项“-- Select --”),我如何才能使验证工作显示错误?
最佳答案
您可以首先尝试两种方法
[Required, Range(1, Int32.MaxValue)]
public int SingleSelect { get; set; }
或更改您的选择列表:
ViewBag.SingleSelectList = new SelectList(new[]
{
new {ID="0",Name="-- Select --", Value=""},
new {ID="1",Name="Select 1"},
new{ID="2",Name="Select 2"},
new{ID="3",Name="Select 3"},
},
"ID", "Name", 0);
关于c# - MVC 4 中单个选择下拉列表的验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17051125/