【发布时间】:2019-11-04 02:57:24
【问题描述】:
我的 Razor 页面中有输入字段,这些字段是使用 foreach 循环加载的。例如:
@foreach (var item in Model.DataList.Where(p => p.SubmittedBy == user.SubmittedBy))
{
<input asp-for="AllTable.RefNumber" name="@item.Id" class="form-control" placeholder="Comments (optional)">
}
AllTable 是 Model,RefNumber 是 Property
我还有一个自定义验证类,它使用以下方法验证文本框的值:
var refNumber = (string)validationContext.ObjectType.GetProperty(validationContext.MemberName).GetValue(validationContext.ObjectInstance, null);
目前,refNumber 为空。如何在保留唯一名称属性的同时验证字段?如果我删除唯一名称,它可以正常工作,但是当发生验证错误时,它会针对所有相同的字段显示,因为名称与 asp-for 相同。
谢谢,
【问题讨论】:
-
需要澄清更广泛的表格范围。我很好奇为什么所有这些输入都会引用
asp-for="AllTable.RefNumber"。澄清你实际上想要做什么,这样循环的上下文是已知的。 -
能否也包含此表单绑定的模型。
-
用于表格行数据,每一行有数据,下面有一个表格行。此表单包含 RefNumber 输入,当单击批准按钮时,会将数据与其他隐藏字段一起保存到数据库,但需要先检查单独的数据库以确保 ref 编号不存在。
标签: c# asp.net asp.net-core razor