Asp.net mvc 2 mvc:特定于控制的所需验证

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[

我将MVC2.0与C.Net一起使用 在我的视图页面中,我正在创建多个具有所需字段验证的控件。为了绘制控件,我使用for循环遍历我的mode对象,它实际上是业务对象的集合。对于表示“用户注释”的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方法,用于将所有内容放在一个表单中,并将提交操作发布到控制器。

您能否尝试将集合中的每个对象放在一个单独的表单中,如下所示:

<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,让大家更清楚。