2个输入,但仅验证一个

本文关键字:一个 验证 输入 2个 | 更新日期: 2023-09-27 18:27:03

你能帮我解决这个问题吗?假设我有一个表格,里面有一些东西(例如产品),可以添加新产品和编辑现有产品。要求添加行始终可见。然后我有一个问题,当我点击"编辑"产品时,我有两个输入(一个用于编辑,一个用于添加)。当我通过选择"保存可编辑行"将表单发布到服务器时,我想只验证编辑行,而不使用"添加行"(暂时为空)。

问题是,默认的MVC验证应用于我的Add行输入,其控件变为红色,并显示属性验证消息。我不想看到他们,因为这真的很令人困惑。事实上,我不明白为什么会发生这种事。可能是因为MVC无法将空字符串强制转换为DECIMAL(输入引用到的VIEWMODEL中的类型)

2个输入,但仅验证一个

您需要两种不同的表单,一种用于添加项目,另一种用于编辑项目。这些需要指向不同的操作,然后这些操作将只验证一个对象。

我不确定你的代码是什么样子的,但我真的建议你做一些更像下面的事情,你的观点是完全分开的:

从一个显示所有"产品"或任何数据的视图开始。当您在视图中填充这些数据时,您可以将Edit链接分配给每个单独的链接。您只需要一个完整的Add Project链接。像这样:

@Html.ActionLink("Add Project", "AddProjectView")
For Each project In Model.Projects
    @Html.ActionLink("Edit", "EditView", New With {.id = project.ProjectID})
    @<div>PropertyName: @Project.Property</div>
Next

现在,您可以将Edit视图与数据视图分离,它可以单独处理验证。同样,Add Project视图是分离的,并处理自己的验证。添加或编辑成功后,您只需将用户重定向回上面的视图,即可显示和更新您的数据。