我在ASP.Net表单中添加了一个文件上传字段。由于该领域是必需的,我补充道 验证消息,一切正常。之后,我想自定义文件输入样式:
代码:
<div class="input-group">
<label class="input-group-btn">
<span class="btn btn-success">
National ID photo…@Html.TextBoxFor(model => model.NationalIDPhoto, new {
@Type = "file", @Id = "ifile-national-id", @Class = "hidden"
})
</span>
</label>
<input type="text" class="form-control" readonly>
</div>
@Html.ValidationMessageFor(model => model.NationalIDPhoto, "", new {
@Class = "text-danger"
})
这里是model.NationalIDPhoto
属性声明
public class RegisterViewModel
{
/*
* Other attributes here
*/
[Required]
[Display(Name = "National ID Photo")]
public HttpPostedFileWrapper NationalIDPhoto { get; set; }
/*
* And more attributes there
*/
}
输出1:
的问题:
验证消息不会出现。经过一些研究和试验,我得到了理由。
原因: @Class = "hidden"
会导致隐藏输入字段和关联的验证消息。也就是说,要么两者都隐藏,要么两者都可见。
当我删除@Class = "hidden"
时,输出看起来像那样
根据answer,我尝试了以下脚本,但它不起作用:
$.validator.setDefaults({
ignore: []
});
如何显示隐藏字段的验证消息?