我正在使用mvc 2.0和C#.Net 在我的视图页面中,我正在使用必需的字段验证创建多个控件。绘制我的控件,我用于循环我的模式对象,它实际上是业务对象的集合。对于代表'用户评论'的TextBox控件,我在其下面进行了验证。像
<%:Html.TextBoxFor(model=>model.mycollection[i].Comment %>
<%:Html.ValidationMessageFor(model => model.mycollection[i].comments) %>
每行(对于每个评论文本框)都有一个sumit按钮,如下所示
<input runat="Server" name="Button" id="Submit1" type="submit" class="button" value="save comments">
当表单加载时,会创建3行,每行包含一组文本框和一个要提交的按钮。这是因为模型是3个对象的集合。所以现在我可以单独提交用户输入的每条评论。但问题是,当我点击任何按钮时,它不是验证相应的文本框以进行必要的验证,而是一次验证页面上的所有文本框,并为所有文本框提供错误消息。如何避免这种行为? Mypage在顶部有一个html.beginform方法,可以将所有内容放在一个表单中,并将提交发布到控制器操作。
答案 0 :(得分:0)
您是否可以尝试将集合中的每个对象放在一个单独的表单中:
<table>
<% foreach(person in Model.Personlist) { %>
<tr>
<td>
<form>
<%=Html.TextAreaFor(...) %>
<%=Html.ValidationMessageFor(...) %>
<input type="button"......></input>
</form>
</td>
</tr>
<% } %>
</table>
..因此,当您单击“提交”时,只会验证该表单。 您也可以使用div而不是table。