Asp.net mvc 5 数据注释和输入[文件]
我有一个带有数据注释属性的视图模型Asp.net mvc 5 数据注释和输入[文件],asp.net-mvc-5,unobtrusive-validation,Asp.net Mvc 5,Unobtrusive Validation,我有一个带有数据注释属性的视图模型 public class vm{ [Required(AllowEmptyStrings=false,ErrorMessage="message 1")] public string Name { set; get; } [RegularExpression("([0-9]+)", ErrorMessage = "message 2")] public int Period { set; get; } [Re
public class vm{
[Required(AllowEmptyStrings=false,ErrorMessage="message 1")]
public string Name { set; get; }
[RegularExpression("([0-9]+)", ErrorMessage = "message 2")]
public int Period { set; get; }
[Required(ErrorMessage = "message 3")]
[RegularExpression(@"^(\.xls|\.xlsx)$",
ErrorMessage = "message 3")]
public string Extension { set; get; }
}
“期间”字段限定为下拉列表,使用该字段,内置客户端验证工作正常
@Html.DropDownListFor(x => x.Period, Model.Periods, new { @class = "form-control", name = "period" })
我可以通过ValidationSummary或ValidationMessageFor获取错误消息
现在是字段扩展名和名称的问题。它们由我提交的文件中的自定义活页夹填写
<input type="file" name="file" />
但现在的问题是,如何将第二个字段也绑定到它?
我只想将一个输入绑定到视图模型中的两个字段。我该怎么做?
即使使用隐藏字段,它似乎也不起作用:
@Html.HiddenFor(x=>x.Name)
我想我明白了。
解决方案允许使用隐藏字段,但必须将验证插件配置为不忽略这些字段
@Html.HiddenFor(x=>x.Name)
还有剧本
$('form').validate().settings.ignore = [];
如果有更好的方法,我想看看。如果不为
Name
和Extension
提供输入,则无法将ValidationMessageFor
与它们关联。您使用了ignore
的正确设置,因此它不会忽略任何内容。
$('form').validate().settings.ignore = [];