如何仅在验证后执行ASP.Net MVC Ajax.ActionLink?
NETMVC3.0项目 我的页面中有一个表单和一个Ajax.ActionLink,它向当前表单中添加了另一组字段,这是一个重复的过程,只要用户不断单击ActionLink,它就会不断向表单中添加越来越多的字段 这是我的Ajax操作链接如何仅在验证后执行ASP.Net MVC Ajax.ActionLink?,ajax,asp.net-mvc-3,validation,actionlink,Ajax,Asp.net Mvc 3,Validation,Actionlink,NETMVC3.0项目 我的页面中有一个表单和一个Ajax.ActionLink,它向当前表单中添加了另一组字段,这是一个重复的过程,只要用户不断单击ActionLink,它就会不断向表单中添加越来越多的字段 这是我的Ajax操作链接 @Ajax.ActionLink("Add Another ERx", "ERxView", "Medication", new AjaxOptions { UpdateTargetId = "accordion", InsertionMode = Inserti
@Ajax.ActionLink("Add Another ERx", "ERxView", "Medication", new AjaxOptions
{
UpdateTargetId = "accordion",
InsertionMode = InsertionMode.InsertAfter,
HttpMethod = "POST",
OnBegin = "destroyAccordion",
OnSuccess = "createAccordion"
}, new { @class = "standard button", id = "AnotherErx", onclick = "document.ERxForm.submit();"})
我的问题是
当用户单击链接时,它应该首先验证当前表单中所有必需的字段,在成功验证后,它应该将新的字段集附加到表单中
我在我的Ajax.ActionLink中尝试了类似的方法,以在单击ActionLink时验证当前表单
onclick = "document.ERxForm.submit();"
这将触发表单验证,但不管验证如何,它都会继续向表单添加新的字段集
谁能帮我,我怎么能做到这一点
感谢所有花时间阅读我的问题的人。问题很可能是您正在添加要验证的新元素。如果通过AJAX添加新的验证元素,则需要清除并重新解析页面上的所有验证属性,如下所示:
$("form").removeData("validator");
$("form").removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse("form");
将此添加到您的OnSuccess
函数中,验证将适用于页面上的所有元素,包括原始元素和添加元素
OnBegin = "destroyAccordion"
使函数调用验证函数并返回true或fals。
如果为真,则执行操作链接 你的回答在一定程度上帮助了我。但是,如何确保在验证为真之前不会调用控制器操作?我错过了您正在作为ActionLink的一部分进行提交的消息。为什么?提交会干扰验证过程。我建议从ActionLink中删除
onclick
事件,因为我看不出它有什么用途。这肯定会把验证过程搞砸。