我有一个“联系我们”页面,我有一个问题和答案列表,如下所示:
public List<string> Questions = new List<string>()
{
"What browser are you using?",
"What version of the browser are you using?",
"And so on and so forth..."
};
public List<string> Answers { get; set; }
然后我将这些添加到视图中:
@foreach (var question in Model.Questions)
{
<dt>
<dd width="240" height="25">@Html.Label(question)</dd>
<dd width="240" height="80">
@Html.ValidationMessageFor(model => model.Answers[Model.Index])
@Html.TextAreaFor(model => model.Answers[Model.Index], new { @class = "uniform", @id = "text" })
</dd>
</dt>
Model.Index += 1;
}
在我编写自定义验证器之前,有没有办法可以验证该答案列表中的每个字符串,类似于验证字符串字段的方式?:
[StringLength(100)]
提前致谢!!
答案 0 :(得分:2)
您的问题列表应该是您的“联系我们”页面模型中包含的另一个模型,以便您可以将这些属性分配给该模型。 这样您就可以对每个项目进行验证。
另一种选择只是检查控制器代码中的长度(当然没有客户端验证),如果验证失败,请使用ModelState.AddError()手动添加错误。
第三个选项(再次是服务器端)是在模型中实现IValidateableObject以手动检查这些值。