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 = [];