2011-03-11 52 views
0

我使用mvc 2.0与C#.Net 在我的查看页面中,我创建了多个控件,并提供了所需的字段验证。为了绘制我的控件,我使用for循环通过我的模式对象,它实际上是一个业务对象的集合。对于代表“用户评论”的我的TextBox控件,我已经在其下进行了验证。像mvc:控制特定的需要验证

<%:Html.TextBoxFor(model=>model.mycollection[i].Comment %> 
<%:Html.ValidationMessageFor(model => model.mycollection[i].comments) %> 

没有为每个行像以下

<input runat="Server" name="Button" id="Submit1" type="submit" class="button" value="save comments"> 

当形式负载,3行被创建,每个包含一组文本框和一个SUMIT按钮(为每个评论文本框)按钮提交。这是因为模型是3个对象的集合。所以现在我可以单独提交用户输入的每条评论。但问题是,当我点击任何按钮,而不是验证相应的文本框进行所需的验证时,它一次验证页面上的所有文本框,并给出所有这些文本框的错误消息。如何避免这种行为? Mypage上面有一个html.beginform方法,可以将所有内容放在一个表单中,并将提交内容发布到控制器操作。

回答

0

你可以尝试把每一个物体从您的收藏在一个单独的形式是这样的:

<table> 
    <% foreach(person in Model.Personlist) { %>  
    <tr>  
<td> 
    <form> 
    <%=Html.TextAreaFor(...) %> 
    <%=Html.ValidationMessageFor(...) %> 
    <input type="button"......></input> 
    </form> 
    </td> 
    </tr> 
    <% } %> 
</table> 

..所以那么只有形式将被验证,当你点击提交。 你也可以用div代替表格。

+0

谢谢!我会尝试div选项。由于将有大量的控制,它会导致单页上的表格数量.. – 2011-03-14 04:15:21

+0

有没有其他的做法呢?除了表单标签? – 2011-03-14 10:38:56

+0

我已经在我的问题中写了几句,以便让大家更清楚。 – 2011-03-17 11:58:54