拦截的表单提交在jQuery和ASP.NET MVC上生成阻止的Ajax请求

yan.kun

目前,我遇到了一个非常奇怪的问题。我只有一个页面应用程序,并且所有表单提交都通过以下方式拦截:

$('body').on('submit', 'form', function (e) { 
    $.ajax({ ... }) 
    e.preventDefault(); 
    return false; 
});

在网站的某些部分,我已采取行动,这将触发两个请求。一个长期运行的请求和一个经常发生的请求来检查长期运行的请求的状态(有些过时,但是我有我的理由)。一切正常。

但是,这不能与我的表单提交处理程序结合使用。

工作示例:

var checker = function() {
    $.ajax(/*check the state*/).done(function() {
        setTimeout(checker(), 750);
    });
};

$.ajax(//long running request);
checker();

不起作用的示例:

var checker = function() {
    $.ajax(/*check the state*/).done(function() {
        setTimeout(checker(), 750);
    });
};

$('#my_form').submit();
checker();

在这种情况下,提交处理程序中的ajax请求将阻止所有其他请求,直到完成为止。有人对此有解释吗?此过程中涉及的所有控制器都装饰有:

[SessionState(System.Web.SessionState.SessionStateBehavior.ReadOnly)]

谢谢你的帮助!

yan.kun

知道了!实际上

[SessionState(System.Web.SessionState.SessionStateBehavior.ReadOnly)]

没有效果,因为我们使用了自定义控制器工厂。不幸的是,我们仅覆盖了GetControllerInstance()方法来从查询字符串解析我们的控制器类型,而不是GetControllerType()。由于此问题,方法GetSessionStateBeavoir()始终返回SessionStateBehavior.Default,因为为该方法提供的Type为null,并且默认检查包含在DefaultControllerFactory的原始实现中:

if (controllerType == null) {
    return SessionStateBehavior.Default;
}

因此,我将逻辑确定为GetControllerType()的控制器类型转移了,现在一切都按预期工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery UI提交表单ajax asp.net

来自分类Dev

使用ASP .NET MVC和jQuery AJAX请求下载服务器生成的CSV

来自分类Dev

阻止Asp.NET按钮提交表单

来自分类Dev

在asp.net mvc 5中使用jQuery成功调用ajax后提交表单

来自分类Dev

如何防止提交事件和onclick事件调用ActionResult方法创建使用Jquery ASP.NET MVC提交表单数据?

来自分类Dev

ASP.NET MVC Ajax 提交带有 AntiforgeryToken 的表单和带有验证的序列化表单数据

来自分类Dev

在MVC 4 ASP.net中提交表单后,保存dropdownlist状态和单选按钮状态

来自分类Dev

ASP.NET MVC如果请求来自蜘蛛则阻止OutputCache

来自分类Dev

ASP.NET MVC AJAX表单提交在提交/发布操作后丢失ListBoxFor / MultiSelectList

来自分类Dev

asp.net MVC响应jQuery AJAX请求

来自分类Dev

ASP.NET MVC-在匿名Ajax请求上刷新Auth Cookie

来自分类Dev

提交简单表单MVC ASP.Net网站的StackOverflow异常

来自分类Dev

ASP.Net MVC 4在表单提交时设置“ onsubmit”

来自分类Dev

选中“ ASP.NET MVC提交表单”复选框

来自分类Dev

ASP.NET MVC 5 最佳实践表单提交

来自分类Dev

在Asp.net Core中提交Ajax表单后的RedirectToAction

来自分类Dev

Ajax表单提交与ASP.NET MVC 6中的文件

来自分类Dev

在Asp.Net MVC 4中使用AJAX提交表单

来自分类Dev

如何获取FormData对象并通过Ajax使用ASP.NET MVC提交表单数据

来自分类Dev

单击按钮并验证后如何调用使用ajax的asp.net MVC表单提交事件?

来自分类Dev

如何获取FormData对象并通过Ajax使用ASP.NET MVC提交表单数据

来自分类Dev

阻止表单中的ASP.NET文本框提交表单

来自分类Dev

jQuery序列化:尝试在不提交表单的情况下将表单状态传递给ASP.NET MVC控制器

来自分类Dev

ASP.Net中如何使用jQuery Ajax提交表单实现表单数据到另一个cs文件

来自分类Dev

ASP MVC多按钮表单让JQuery拦截按钮单击

来自分类Dev

从ASP.NET MVC中的外部javascript文件提交Ajax请求

来自分类Dev

ASP.NET MVC中的Ajax FileUpload和JQuery formData

来自分类Dev

ASP.NET MVC中的Ajax FileUpload和JQuery formData

来自分类Dev

jQuery Ajax和ASP.NET MVC控制器

Related 相关文章

  1. 1

    jQuery UI提交表单ajax asp.net

  2. 2

    使用ASP .NET MVC和jQuery AJAX请求下载服务器生成的CSV

  3. 3

    阻止Asp.NET按钮提交表单

  4. 4

    在asp.net mvc 5中使用jQuery成功调用ajax后提交表单

  5. 5

    如何防止提交事件和onclick事件调用ActionResult方法创建使用Jquery ASP.NET MVC提交表单数据?

  6. 6

    ASP.NET MVC Ajax 提交带有 AntiforgeryToken 的表单和带有验证的序列化表单数据

  7. 7

    在MVC 4 ASP.net中提交表单后,保存dropdownlist状态和单选按钮状态

  8. 8

    ASP.NET MVC如果请求来自蜘蛛则阻止OutputCache

  9. 9

    ASP.NET MVC AJAX表单提交在提交/发布操作后丢失ListBoxFor / MultiSelectList

  10. 10

    asp.net MVC响应jQuery AJAX请求

  11. 11

    ASP.NET MVC-在匿名Ajax请求上刷新Auth Cookie

  12. 12

    提交简单表单MVC ASP.Net网站的StackOverflow异常

  13. 13

    ASP.Net MVC 4在表单提交时设置“ onsubmit”

  14. 14

    选中“ ASP.NET MVC提交表单”复选框

  15. 15

    ASP.NET MVC 5 最佳实践表单提交

  16. 16

    在Asp.net Core中提交Ajax表单后的RedirectToAction

  17. 17

    Ajax表单提交与ASP.NET MVC 6中的文件

  18. 18

    在Asp.Net MVC 4中使用AJAX提交表单

  19. 19

    如何获取FormData对象并通过Ajax使用ASP.NET MVC提交表单数据

  20. 20

    单击按钮并验证后如何调用使用ajax的asp.net MVC表单提交事件?

  21. 21

    如何获取FormData对象并通过Ajax使用ASP.NET MVC提交表单数据

  22. 22

    阻止表单中的ASP.NET文本框提交表单

  23. 23

    jQuery序列化:尝试在不提交表单的情况下将表单状态传递给ASP.NET MVC控制器

  24. 24

    ASP.Net中如何使用jQuery Ajax提交表单实现表单数据到另一个cs文件

  25. 25

    ASP MVC多按钮表单让JQuery拦截按钮单击

  26. 26

    从ASP.NET MVC中的外部javascript文件提交Ajax请求

  27. 27

    ASP.NET MVC中的Ajax FileUpload和JQuery formData

  28. 28

    ASP.NET MVC中的Ajax FileUpload和JQuery formData

  29. 29

    jQuery Ajax和ASP.NET MVC控制器

热门标签

归档