【问题标题】:Submit button doesn't work for ajax form rendered in dynamic partial view提交按钮不适用于在动态局部视图中呈现的 ajax 表单
【发布时间】:2009-04-18 06:48:50
【问题描述】:

我有一些 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
  }
}

finally结尾处光标高亮,表示Object没有这个属性或方法。

我想我可以忍受它;当它不断在 MicrosoftAjax.js 中抛出异常并在 VS 中触发调试器时,这只是烦人的测试。

【问题讨论】:

    标签: asp.net-mvc asp.net-ajax


    【解决方案1】:

    如果您使用 OnSuccess,您是否也不需要 UpdateTarget,这就是它一开始没有触发的原因?

    【讨论】:

      【解决方案2】:

      您确定您引用的是 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 引用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-28
        • 1970-01-01
        • 1970-01-01
        • 2016-05-14
        • 2020-07-11
        相关资源
        最近更新 更多