如果使用 AJAX 呈现部分视图,则 Ajax.BeginForm 发布两次

Ajax.BeginForm posts twice if partial view is rendered with AJAX

本文关键字:Ajax BeginForm 布两次 视图 AJAX 现部 如果      更新时间:2023-09-26

这是场景:

  1. 部分视图由某些JavaScript检索(AJAX调用控制器返回部分视图),并将HTML添加到DOM
  2. 分部视图包含由 Ajax.BeginForm() 呈现的窗体
  3. 提交表单(单击提交按钮)时,它会发布两次

如果我使用带有Html.Partial()的原始视图渲染部分视图(而不是使用 JavaScript 添加它),则表单仅按预期提交一次。

用于添加分部视图的脚本如下所示:

$.ajax({
   type: 'GET',
   url: '/MyController/MyAction',
   cache: false,
   contentType: "application/html; charset=utf-8",
   dataType: 'html',
   success: function (result) {
      $('#body').append(result);
   }
});

有什么想法吗?:)谢谢!

我是个白痴。我的控制器返回了 View 而不是 PartialView - 所以它当然包含所有的 JavaScript 资源。换句话说,问题是由两个不显眼的脚本链接引起的。:/