mvc:控制特定的必需验证

时间:2011-03-11 12:13:12

标签: asp.net-mvc-2 validation html-helper

我正在使用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方法,可以将所有内容放在一个表单中,并将提交发布到控制器操作。

1 个答案:

答案 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。