在具有不同提交按钮的表单上实施不同的验证规则

时间:2011-05-22 23:21:31

标签: asp.net-mvc validation

我的视图中有一个映射到ViewModel的表单。我在表单中有2个提交按钮。当使用其中一个按钮提交表单时,表单中的某些字段将为空 - 使用此1按钮提交表单时是否可以避免验证空字段? (使用其他按钮我想保留通常的验证规则)。

不幸的是,我无法将我希望为空的字段分隔成单独的ViewModel,因为两个模型都有一个总是需要填充的公共字段。

有关于此的任何想法吗?任何帮助将不胜感激。

非常感谢。 詹姆斯

1 个答案:

答案 0 :(得分:0)

有可能,但是

  • 您将无法使用客户端验证
  • 您将无法使用必需等数据注释属性,并且您可能需要自己的验证(或者您可以选择仅标记两种情况下都需要的属性并手动验证其他属性)

您需要为提交的名称属性设置不同的值

<input type="submit" name="first-submit" value="First action" />
<input type="submit" name="second-submit" value="Second action" />

然后,您可以在action方法中声明FormCollection类型的参数。取决于按下哪个按钮,它将包含first-submit键或second-submit键。现在您可以根据此更改验证逻辑。