Asp.net mvc 2 mvc:特定于控制的所需验证
我将MVC2.0与C.Net一起使用 在我的视图页面中,我正在创建多个具有所需字段验证的控件。为了绘制控件,我使用for循环遍历我的mode对象,它实际上是业务对象的集合。对于表示“用户注释”的TextBox控件,我将验证放在它下面。像Asp.net mvc 2 mvc:特定于控制的所需验证,asp.net-mvc-2,validation,html-helper,Asp.net Mvc 2,Validation,Html Helper,我将MVC2.0与C.Net一起使用 在我的视图页面中,我正在创建多个具有所需字段验证的控件。为了绘制控件,我使用for循环遍历我的mode对象,它实际上是业务对象的集合。对于表示“用户注释”的TextBox控件,我将验证放在它下面。像 <%:Html.TextBoxFor(model=>model.mycollection[i].Comment %> <%:Html.ValidationMessageFor(model => model.mycollection[
<%: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方法,用于将所有内容放在一个表单中,并将提交操作发布到控制器。您能否尝试将集合中的每个对象放在一个单独的表单中,如下所示:
<table>
<% foreach(person in Model.Personlist) { %>
<tr>
<td>
<form>
<%=Html.TextAreaFor(...) %>
<%=Html.ValidationMessageFor(...) %>
<input type="button"......></input>
</form>
</td>
</tr>
<% } %>
</table>
…因此,当您单击“提交”时,将只验证该表单。
也可以使用div代替table 谢谢!我将尝试div选项。由于将有大量的控件,这将导致单页上的表单数量。还有其他方法吗?除了表格标签?我在我的问题中改变了QORD,让大家更清楚。