【发布时间】:2017-12-25 01:17:46
【问题描述】:
我在标题中指定了 IE,因为我的代码在 Chrome 上按预期工作。本质上,我有一个名为“维护”的视图,用于创建、编辑和删除。表单本身包含在一个局部视图(巧合地称为“_MaintenanceForm”)中,它有自己的 GET/POST 方法来提交表单。 Here is the form. 抱歉,我不得不使用 Pastebin 而不是内联代码块——它们让我超出了字符数限制。
请注意,该表单的 ID 为 #maintenanceForm。我没有使用 AJAX 调用来提交此表单,而是使用 jQuery 函数$("#maintenanceForm").submit();,因此我不需要将所有字段作为数据传递。 Here is my JavaScript for the Maintenance page.
我知道.submitForm click 函数被定义了两次,这是多余的代码,但我最初将它作为一个单独的函数,这会导致问题,所以我将其定义为匿名内联。一旦我的代码在 IE 中运行,我就可以专注于清理代码。
我的维护视图非常简单,它只是一个<div class="maintenance-form"></div>,MaintenanceForm 部分是使用第一个 AJAX 调用呈现的。 Here are my controller methods. 基本上我遇到的问题是,在 Chrome 中,在 MaintenanceForm POST 方法之后,会调用 Maintenance GET 方法来重新呈现视图。重新呈现视图时,会通过 AJAX 调用再次调用 MaintenanceForm GET 和 SearchTable2 方法。在 IE 中,维护 GET 方法被调用,但 AJAX 调用不会重新提交,因此表单不会刷新。因此,我需要手动刷新页面以查看所做的更改。
正如我所说,这完全符合我在 Chrome 中而不是 IE 中的要求,所以我知道这一定是某种 IE 兼容性问题,但我无法终生解决这个问题。提前感谢您的帮助,如果提供更多代码有帮助,请告诉我!
【问题讨论】:
-
@MichaelCoxon 我不知道要搜索“缓存”。我做了很多搜索,找不到任何东西,所以我问了我自己的问题。不过,添加
$.ajaxSetup({ cache: false });确实有效,所以如果你想回答这个问题,我很乐意接受。感谢您的帮助!
标签: javascript c# ajax asp.net-mvc razor