ThingController创建一个包含(以及其他属性)事物集合的模型。这些内容可以在视图中编辑如下:
<form action="@Url.Action("Update", "Thing")" method="post">
<table>
<tr>
<th>Foo</th>
<th>Bar</th>
</tr>
@foreach (var thing in ViewData.Model.Things)
{
<tr class="raw-data">
<td class="raw-data"><input name="things[@rowCount].Foo" class="raw-data" readonly="readonly" type="text" value="@thing.Foo" /></td>
<td class="raw-data"><input name="things[@rowCount].Bar" class="raw-data" type="text" value="@thing.Bar" /></td>
</tr>
rowCount++;
}
</table>
<br />
<input type="submit" value="OK" />
</form>控制器包含以下操作,允许同时更新多个事物:
public ActionResult Update(ThingModel[] things)
{
...
} 我向Thing类的属性添加了一些验证属性:
[Required]
[Range(0, 500000, ErrorMessage = "Foo must be within 0 and 500,000.")]
public double Foo{ get; set; }
[Required]
[Range(0, 500000, ErrorMessage = "Bar must be within 0 and 500,000.")]
public double Bar { get; set; }问题是,我不知道如何使用TextBoxFor助手等添加不引人注目的验证。
此时,我认为正确的方法是用验证属性手动标记输入字段,但我想知道是否有人可以向我介绍一些文档、教程等等,这些文档演示了帮助器的使用、多个模型和不引人注目的验证?
发布于 2011-08-01 07:10:24
我有一个类似的问题,用户可以动态添加多封电子邮件到他们的帐户。通过手动添加验证,我用Jquery修复了它。您应该给表单一个名称,并将验证添加到所有项中。应该是这样的,我问:
$('#frmYourForm').validate();
for (var i = 0; i < 'CountOfAllFields'; i++) {
$('#Things_' + i + '__Foo').rules('add', { required: true, messages: { required: 'The Foo field is required'} });
$('#Things_' + i + '__Bar').rules('add', { required: true, messages: { required: 'The Bar field is required'} });
}从我的记忆中输入,所以如果我犯了错误,不要开枪。我不知道范围内容的确切语法,但是您应该查看一下Jquery.validate文件。
https://stackoverflow.com/questions/6893435
复制相似问题