没有浏览器调试器,MVC的Javascript无法在IE中工作

时间:2014-09-17 13:43:32

标签: javascript jquery asp.net-mvc internet-explorer

我有一个跟随MVC控制器动作调用的以下javascript函数:

var loadPartialChapterAfterAnswer = function () {
        $.ajax({                
            url: '@Url.Action("IsAuthenticated", "Story")',
            type: "POST",
            success: function(data) {
                var isAuthenticated = data;
                if (isAuthenticated) {
                    if ('@Model.IsPersonality' == 'True') {
                        loadPartialChapter();
                    } else {
                        $("#chapterContainer").load('@Url.Action("GetNextQuestion", "Story")' + '?storyId=' + '@Model.Id', function () {
                            selectedCounter = 0;
                            showOnlyOneQuestion();
                        });
                    }
                } else {
                    window.location.href = '@Url.Action("RedirectToHomeRoute", "Home")';
                }
            },
            error: function() {
                alert("Error");
            }
        });
    };

每次在我的页面(视图)上选中一个复选框时,都会调用此函数。除IE之外,代码在所有浏览器中都很有效。在IE中,每次都会调用ajax url @Url.Action("IsAuthenticated", "Story"),但只有在IE的浏览器调试器打开时才会调用其他控制器操作'@Url.Action("GetNextQuestion", "Story")' + '?storyId=' + '@Model.Id'。当IE的调试器窗口关闭时,永远不会调用第二个MVC动作。

非常感谢任何帮助!

我在页面的开头添加了这段代码:

<script>
    $.ajaxSetup({
        cache: false
    });
</script>

现在它有效!谢谢你的努力。

2 个答案:

答案 0 :(得分:2)

我读过有关IE有JQuery加载功能问题的内容 尝试使用常规$.ajax替换cache: false选项,希望它能解决问题。

选中此topic

答案 1 :(得分:0)

添加控制器:@ Url.Action(“GetNextQuestion”)' 没有控制器指定它放置最后返回视图的控制器。