添加 JQuery 验证插件后 Request.Form["key"] 为空

Request.Form["key"] is null after adding JQuery Validate plugin

我有一个带有表单的编辑视图,其中有两个提交按钮:

<input type="submit" name="save" value="@Resources.Save" class="btn btn-default" />  
<input type="submit" name="delete" value="@Resources.Delete" class="btn btn-danger" />

在这里我可以保存或删除记录。

然后在我的控制器中我这样做:

if (Request.Form["delete"] != null)
{
    // delete    
}
else
{
    // edit
}

所以一切正常,直到我添加了 jQuery 验证插件和 JQuery Validate Unobstrusive(我需要进行 Remote 验证)。它破坏了记录的删除我的申请。

我的 Request.Form["delete"] 现在总是 null。请注意,Request.Form 确实包含表单中的所有其他值(并且它过去工作正常)。

有人知道我该如何解决这个问题吗?

我通过向我的删除按钮添加 formnovalidate 设法解决了我的问题:
<input id="delete" formnovalidate type="submit" name="delete" value="@Resources.Delete" class="btn btn-danger" />

来自 Jquery 验证参考文档 (here):

Skipping validation on submit

To skip validation while still using a submit-button, add the attribte "formnovalidate" to that input:

1 <input type="submit" name="go" value="Submit">
2 <input type="submit" formnovalidate name="cancel" value="Cancel">

这过去通过在输入中添加 class="cancel" 来工作,现在已弃用。

所以 jquery.validatejquery.validate.unobtrusive 库中的某些东西阻止我提交删除值,但我不确定它是什么..