添加JQuery Validate插件后,Request.Form [“key”]为null

时间:2015-02-18 17:35:46

标签: c# asp.net-mvc-5 jquery-validate unobtrusive-validation

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

<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 Validation插件和JQuery Validate Unobstrusive(我需要进行Remote验证)..它打破了我的应用程序中记录的删除。

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

任何人都有一些想法如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

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

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

  

在提交时跳过验证

     

要在仍然使用提交按钮时跳过验证,请添加attribte&#34; formnovalidate&#34;对那个输入:

     
    

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

  
     

以前通过添加class =&#34;取消&#34;对于输入,现在已弃用。

因此jquery.validatejquery.validate.unobtrusive库中的某些内容阻止我的删除值提交,但我不确定它是什么..