-1

你能帮我解决这个问题吗?假设我有一个表格,其中包含一些东西(例如产品),可以添加新产品和编辑现有产品。要求是添加行始终可见。当我点击“编辑”产品时遇到问题,我有两个输入(一个用于编辑,一个用于添加)。当我通过选择保存可编辑行将表单发布到服务器时,我想仅验证编辑行并且对添加行不做任何事情(暂时为空)。

问题是默认 MVC 验证应用于我的 Add 行输入,其控件变为红色,并且出现属性验证消息。我不想看到它们,因为它真的很混乱。其实我不明白为什么会这样。可能是因为 MVC 无法将空字符串转换为 DECIMAL(输入引用的 VIEWMODEL 中的类型)

4

1 回答 1

1

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

我不确定您的代码是什么样的,但我真的会建议更像以下内容,您的视图完全分开:

从显示所有“产品”或任何数据的视图开始。当您在视图中填充此内容时,您可以将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视图被分离并处理自己的验证。成功添加或编辑后,您可以简单地将用户重定向回您的上述视图,在该视图中显示和更新您的数据。

于 2013-08-10T18:53:43.417 回答