我有一个带有数据注释属性的视图模型
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" />
如何将这两个字段手动绑定到jquery unobstrusive客户端验证可以工作的输入文件标记?
更新
刚才我发现如何使用内置帮助器生成输入[file]:
@Html.TextBoxFor(x => x.Extension, new { type = "file" })
但现在的问题是,如何将第二个字段绑定到它呢? 我只想将一个输入绑定到视图模型中的两个字段。我怎样才能做到这一点? 即使使用隐藏字段,它似乎也不起作用:
@Html.HiddenFor(x=>x.Name)
答案 0 :(得分:0)
我想我明白了。 它使用隐藏字段的解决方案,但必须将validate插件配置为不忽略它们。
@Html.HiddenFor(x=>x.Name)
和脚本
$('form').validate().settings.ignore = [];
如果有更好的方法,我希望看到它。