c# - MVC - 部分 View 不断显示相同的内容

标签 c# asp.net-mvc internet-explorer asp.net-mvc-partialview

我目前正在创建一个 MVC 应用程序,它基本上只是一个用于数据库内容的大型 CRUD 工具。 对于用于限制某些选择(国家、类别等)的小表,我创建了 1 个页面来加载请求的表,并允许用户仅使用 Ajax 调用来添加/删除/编辑属性。

当页面加载时,用户会得到一个包含所有表名的下拉列表。提交时,会触发以下代码:

public PartialViewResult OpenConfig(string SelectID)
{
    using (DBconnection db = new DBconnection())
    {
        switch (SelectID)
        {
            case "---":
                return null;
            case "1":
                var countries = (from x in db.tbl_CountriesSet select x).ToList();
                return PartialView("Countries", countries);
            case "2":
                var supplierstatus = (from x in db.tbl_SupplierStatusSet select x).ToList();
                return PartialView("Supplierstatus", supplierstatus);
            case "3": .....
        }
    }
}

这就是它变得有趣的地方。假设我打开国家窗口,它加载正确,我可以添加/编辑/删除一个国家。这些条目使用 jQuery 在页面上更新,同时使用 Ajax 调用更新数据库。这两个工作正常,数据库和页面都更新了。我可以继续工作,所有更改都反射(reflect)在页面和数据库中,问题在重新加载局部 View 时开始。

当我在下拉列表中选择“国家/地区”值并再次提交时,程序只是跳过上面显示的方法并显示与我第一次请求列表时相同的部分 View 。 我在方法中设置了一个断点,如果我在它被触发之前加载了我没有加载的东西,但不是我已经请求的页面。 在 Firefox 中,这有效并且局部 View 被更新(并且断点被触发),但是在 Internet Explorer 中,我的 Controller 被完全忽略并且它一直显示相同的页面(即使我转到一个完全不同的页面然后返回到设置页面)。

谁能告诉我如何告诉 IE 显式重新加载包含当前数据库内容的部分 View ?

最佳答案

它的浏览器缓存工作。它会返回缓存的结果。

使用将当前日期值添加到 url 以允许从网络服务器加载新结果:

$('#container').load("http://mysite/myview/?" + new Date().getTime(), function () { });

关于c# - MVC - 部分 View 不断显示相同的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8240917/

相关文章:

jquery - 隐藏文件输入在提交时不保留值

c# - 如何在 LongListSelector 中显示/隐藏(如果可能,使用动画)复选框

c# - 使用 C# 使用 Azure DevOps Rest API 创建工作项

javascript - 如果 View 中没有 Jquery 脚本引用,不显眼的 Javascript 验证将不起作用

java - Vista 上的 SWT 浏览器问题

html - 可以包含脚本标签的跨浏览器 XML 数据岛

javascript - DocType 导致 div 位置太高(Margin-top 未被执行)

c# - 调用传递值的基本构造函数

c# - 如何用双引号替换文件中的字符串

asp.net-mvc - ASP.NET MVC 搜索路线