验证ASP.NET MVC 3中的List <string> </string>

时间:2011-11-22 01:53:39

标签: c# asp.net .net asp.net-mvc-3 validation

我有一个“联系我们”页面,我有一个问题和答案列表,如下所示:

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)]

提前致谢!!

1 个答案:

答案 0 :(得分:2)

您的问题列表应该是您的“联系我们”页面模型中包含的另一个模型,以便您可以将这些属性分配给该模型。 这样您就可以对每个项目进行验证。

另一种选择只是检查控制器代码中的长度(当然没有客户端验证),如果验证失败,请使用ModelState.AddError()手动添加错误。

第三个选项(再次是服务器端)是在模型中实现IValidateableObject以手动检查这些值。