【发布时间】:2014-09-18 08:57:21
【问题描述】:
我有一个带有数据注释属性的视图模型
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; }
}
Period 字段绑定到下拉列表,使用此字段,内置客户端验证工作正常。
@Html.DropDownListFor(x => x.Period, Model.Periods, new { @class = "form-control", name = "period" })
我可以通过 ValidationSummary 或 ValidationMessageFor 得到错误信息。
现在我遇到的问题是扩展名和名称字段。它们由我提交的文件中的自定义活页夹填充。
<input type="file" name="file" />
如何手动将这两个字段绑定到jquery不显眼的客户端验证可以工作的输入文件标签?
更新
刚才我发现了如何使用内置助手生成输入[文件]:
@Html.TextBoxFor(x => x.Extension, new { type = "file" })
但现在的问题是,我怎样才能将第二个字段也绑定到它? 我只想将单个输入绑定到视图模型中的两个字段。我怎样才能做到这一点? 即使使用隐藏字段,它似乎也不起作用:
@Html.HiddenFor(x=>x.Name)
【问题讨论】:
-
如果您不为
Name和Extension呈现输入,则无法将ValidationMessageFor与它们关联。
标签: asp.net-mvc-5 unobtrusive-validation