Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正在验证列表<;字符串>;在ASP.NETMVC3中_C#_Asp.net_.net_Asp.net Mvc 3_Validation - Fatal编程技术网

C# 正在验证列表<;字符串>;在ASP.NETMVC3中

C# 正在验证列表<;字符串>;在ASP.NETMVC3中,c#,asp.net,.net,asp.net-mvc-3,validation,C#,Asp.net,.net,Asp.net Mvc 3,Validation,我有一个“联系我们”页面,其中有一系列问题和答案,如: public List<string> Questions = new List<string>() { "What browser are you using?", "What vers

我有一个“联系我们”页面,其中有一系列问题和答案,如:

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; }

提前谢谢

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

另一种方法是检查控制器代码的长度(当然这里没有客户端验证),如果验证失败,则使用ModelState.AddError()手动添加错误


第三种选择(还是服务器端)是在模型中实现IValidTeableObject以手动检查这些值。

您想验证什么?我不确定您这么挑剔是否公平-如果您查看我的历史记录。。。每当我问了一个没有回答的问题,或者回答不正确,我都会为了社区的利益回答我自己的问题。@Dallas-我试图验证回答的长度,以确保他们输入的值不会太大。我确实意识到了后两个选项,但是,在我费心重新发明轮子之前,我正在尝试使用现有的客户端功能。我在一个由20名开发人员组成的团队中,所以我不想引入更多的混乱。我不清楚第一个选项是如何将我的答案/问题列表移动到另一个模型。你是在建议我不要使用列表吗?我确实尝试创建一个新类(并在视图中更改了相应的循环),该类包含一个字符串字段,[StringLength]属性设置为[StringLength(100)]……但在这种情况下验证不起作用。
           @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)]