在ASP.NET MVC5中,我使用选定的JS库进行多下拉选择。如何使用数据注释来验证字段?
实际上,我在所有字段上都使用[Required],这个多下拉选项也是,但是它不起作用。
代码:
[MinLength(1)]
public int[] fields{ get; set; }以下是cshtml中的我的代码:
@Html.ListBoxFor(x => x.fields, Model.fieldsSelect, new { data_placeholder = "pholder" })
@Html.ValidationMessageFor(model => model.fields, "", new { @class = "text-danger" })如果没有我目前使用的插件(选择),就没有验证,这里显示的HTML没有选择:
<div class="col-md-10">
<select data-placeholder="Enter multiple fields" data-val="true" data-val-minlength="The field fieldsmust be a string or array type with a minimum length of '1'." data-val-minlength-min="1" id="fields" multiple="multiple" name="fields">
<option value="944454">WARUYFJGHIE</option>
<option value="33033095">WEBJKHGJHGVHGAN</option>
</select>
<span class="field-validation-valid text-danger" data-valmsg-for="fields" data-valmsg-replace="true"></span>
</div>验证对我的所有字符串都有效,但对此不起作用:当我在表单上选择任何内容时,字符串所需的所有内容都是有效的:出现了错误消息,并且提交不是命中控制器/服务器,而是不访问MinLength(1).没有错误消息,当我填充除MinLength(1)之外的所有信息时,表单将被提交,并且由于null而在控制器/服务器中发生错误。
JS验证的版本:
发布于 2014-12-03 10:45:55
您可以使用MinLengthAttribute
[MinLength(1)]
public int[] fields{ get; set; }编辑
根据更多的注释,正在使用一个jquery插件来隐藏<select>。默认情况下,隐藏字段不被验证。若要包含隐藏字段,请添加以下内容
$.validator.setDefaults({
ignore: []
});https://stackoverflow.com/questions/27269493
复制相似问题