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