【发布时间】:2020-06-10 11:35:51
【问题描述】:
我有一个 ID 的 SelectList,用户可以在 List 中选择零多个项目。默认情况下,验证逻辑似乎要求至少选择一个元素。我尝试使用注释 [MinLength(0)],因为各种文档暗示它不仅适用于字符串,还适用于集合/列表。
我的问题的明显答案是禁用属性验证。
稍微不那么明显的答案是编写我自己的自定义ValidationAttribute,这似乎需要付出更多的努力。
我正在寻找是否有另一种简单的方法。
我的 ViewModel 属性:
public List<int> DiverIDList { get; } = new List<int>();
我的 CSHTML:
@{
var DiverSL = (SelectList)ViewData["DiverSL"];
}
<div class="form-group">
<label asp-for="DiverIDList" class="control-label"></label>
<select asp-for="DiverIDList" class="form-control"
asp-items="@DiverSL" size="8">
<option value="">-- Select Divers --</option>
</select>
<span asp-validation-for="DiverIDList" class="text-danger" />
</div>
【问题讨论】:
-
这个问题与stackoverflow.com/questions/39608083/… 非常相似,当创建自定义验证属性时,也不会调用空列表。但是,如果您将自定义验证属性构建为从 requiredattribute 继承,它将始终被调用,即使为空
标签: asp.net-mvc validation razor zero