javascript - 什么可能导致 MVC 应用程序从数据库中提取后不在 IE 中显示当前信息?

标签 javascript jquery asp.net-mvc asp.net-mvc-5 internet-explorer-11

底线: MVC 字段会在 Firefox/Chrome 上更新,但不会在 IE 上更新(除非我执行特定的顺序)。

我有一个 ASP.NET MVC 5 应用程序,它显示有关事件的信息。如果您单击给定的列表项,页面的主要部分将显示有关该事件的所有相关信息。从这里,您可以编辑信息并将更改保存到数据库。

这适用于 Firefox、Chrome 和 IE 11。当用户单击不同的事件并返回到原始事件时,您会期望从数据库中提取最新的数据并将其填充到主要部分中。在 Firefox/Chrome 上,会发生这种情况。在 IE 11 上,只有在以下情况下才会发生这种情况:

  1. 在VS中调试
  2. 在 IE 11 中运行并右键单击某项并选择“检查元素”
  3. 转到“调试器”选项卡
  4. 让它使用VS进行调试
  5. 在VS中设置断点

或者

  1. 退出当前 IE 11 实例
  2. 重新加载 IE 11
  3. 再次点击原始事件条目

我尝试将缓存设置为在每次页面加载时强制更新。下面是获取事件方法的代码:

[Authorize(Roles = "Community Admin, Global Admin")]
public JsonResult GetEvent(int? EventId)
{
    EventContext context = new EventContext();
    Event events = context.Events.Where(a => a.EventId == EventId && a.Active == true).SingleOrDefault();

    if (events == null)
    {
        events = new Event();
        events.CommunityId = this.GetUserProfile().CommunityId;
    }

    JsonResult json = new JsonResult();
    json.Data = events;
    json.JsonRequestBehavior = JsonRequestBehavior.AllowGet;

    return json;
}

这是处理 GetEvent 方法的 javascript:

var url = '@Url.Action("GetEvent", "Event")';
$.getJSON(url, { EventId: eventid },
    function (data) {
        $("#hdnEventId").val(data.EventId);
        $("#txtEventName").val(data.EventName);
        $("#txtEventDescription").val(data.Description);
        $("#txtAddress1").val(data.Address1);
        $("#txtAddress2").val(data.Address2);
        $("#txtCity").val(data.City);
        $("#StateSelector").val(data.State);
        $("#txtZipCode").val(data.Zip);
        $("#txtWebsite").val(data.WebsiteURL);
        $("#txtPhone").val(data.Phone);
        $("#txtEmail").val(data.Email);
        if (data.Active == "1")
            $("#cbxActive").prop('checked', true);
        else
            $("#cbxActive").prop('checked', false);
    });

这让我认为 getEvent() 方法不会执行,除非……它确实执行了。 Controller 方法和 JavaScript 之间是否存在某种脱节?我对此感到惊讶,因为它在其他浏览器上运行良好。

我可以提供其他信息来帮助您理解问题吗?

最佳答案

看起来 $.getJSON 正在以某种方式缓存数据。尝试禁用它。

How to set cache false for getJSON in JQuery?

$(文档).ready(函数() { $.ajaxSetup({ 缓存: false }); });

关于javascript - 什么可能导致 MVC 应用程序从数据库中提取后不在 IE 中显示当前信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35897564/

相关文章:

C# ASP.net MVC Ajax MySQL DATATABLES 列搜索无法将搜索值传递给 Controller

javascript - 如何找出是否有正在监听键盘事件的 Javascript 代码?

javascript - 使用 jquery 检查互联网是否处于事件状态

javascript - 我怎样才能一次捕捉到 2+ 个按键?

javascript - knockout : manually update an observable via code?

c# - ASP.Net MVC 如何用浏览器中无法解析的内容替换 HTML 标签

javascript - 使用 OAuth.io 从 Chrome 扩展程序发出跨浏览器请求

javascript - 从 Javascript 读取一个 txt 文件

php - 如何使用 Jquery 发布数组

c# - MVC4 不在浏览器中保存 cookie