首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >int[]上的数据标注

int[]上的数据标注
EN

Stack Overflow用户
提问于 2014-12-03 10:39:25
回答 1查看 604关注 0票数 1

在ASP.NET MVC5中,我使用选定的JS库进行多下拉选择。如何使用数据注释来验证字段?

实际上,我在所有字段上都使用[Required],这个多下拉选项也是,但是它不起作用。

代码:

代码语言:javascript
复制
[MinLength(1)]
public int[] fields{ get; set; }

以下是cshtml中的我的代码:

代码语言:javascript
复制
@Html.ListBoxFor(x => x.fields, Model.fieldsSelect, new { data_placeholder = "pholder" })
                @Html.ValidationMessageFor(model => model.fields, "", new { @class = "text-danger" })

如果没有我目前使用的插件(选择),就没有验证,这里显示的HTML没有选择:

代码语言:javascript
复制
<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验证的版本:

  • jQuery验证插件-v1.11.1-3/22/2013
  • jquery.validate.unobtrusive.min.js :没有版本(在jquery.validate.unobtrusive..js中也没有)
EN

回答 1

Stack Overflow用户

发布于 2014-12-03 10:45:55

您可以使用MinLengthAttribute

代码语言:javascript
复制
[MinLength(1)]
public int[] fields{ get; set; }

编辑

根据更多的注释,正在使用一个jquery插件来隐藏<select>。默认情况下,隐藏字段不被验证。若要包含隐藏字段,请添加以下内容

代码语言:javascript
复制
$.validator.setDefaults({ 
 ignore: []
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27269493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档