在Asp .Net Core Razor中,可以使用以下方法在验证失败后重新填充新的集合项。
首先,在Razor视图中,使用for
循环迭代集合项,并在每个集合项上使用Html.ValidationMessageFor
来显示验证错误消息。同时,为每个集合项的表单元素添加name
属性和索引,以便在提交表单时能够正确绑定到模型。
@model YourViewModel
然后,在控制器的POST动作方法中,检查模型的验证状态。如果验证失败,将新的集合项添加到模型的Items
集合中。
[HttpPost]
public IActionResult YourAction(YourViewModel model)
{
if (!ModelState.IsValid)
{
// 验证失败,重新填充新的集合项
model.Items.Add(new ItemModel());
return View(model);
}
// 验证通过,执行其他操作
// ...
return RedirectToAction("Index");
}
这样,在验证失败后,表单将被重新显示,并且新的集合项将被添加到表单中。