我有一些jQuery加载局部视图并将其插入DOM。到目前为止,一切都很好。
但是现在我对渲染的用户控件进行了一些更改,以包含Ajax表单。但是,此表单的提交按钮似乎不会触发Ajax调用。据我所知,它根本没有做任何事情。我在控制器中的断点也没有被触发。
如果我使用链接并添加onclick =“submit()”,表单将被提交,并在我的控制器中触发操作,但当然,这是一个简单的帖子而不是ajax帖子。
表格如下:
<% using(Ajax.BeginForm("actionName", new AjaxOptions {
OnSuccess = "updatePanel" })) { %>
<!-- form elements in here -->
<input type="submit" />
<% } %>
如果我将OnSuccess更改为OnComplete,我刚刚发现它会发布帖子,我完全不明白。
但是,即使将其更改为OnComplete也是有效的,我在microsoft ajax库中得到一个例外,在某处:
try {
a._webRequest.completed(Sys.EventArgs.Empty)
} finally {
if (a._xmlHttpRequest!=null) {
a._xmlHttpRequest.onreadystatechange = Function.emptyMethod;
a._xmlHttpRequest = null
}
}
光标在最后的末尾突出显示,表示Object不是这个属性或方法。
我想我可以忍受那个;当它在MicrosoftAjax.js中抛出异常并在VS中篡改调试器时,它只是讨厌测试的东西。
答案 0 :(得分:0)
如果您正在使用OnSuccess,那么您是否还需要具有UpdateTarget,这就是为什么它首先没有被解雇?
答案 1 :(得分:0)
您确定要引用Microsoft AJAX JS文件吗?
你需要确保你有......
<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
您网站的某个地方。默认情况下,我不认为ASP.NET MVC项目会添加这些JS引用。