2

我有代码可以在我的 MVC 应用程序中禁用缓存。我正在使用以下响应标头。它们似乎适用于除 Chrome 之外的所有浏览器(当前使用版本 31.0.1650.48)。用户可以提交带有模型值的表单。当他们点击后退按钮时,我需要使用空白模型重新加载页面。由于请求正在执行操作并返回空白模型,因此标头似乎部分工作。但是视图没有更新。上一篇文章中的值将被保留。我试过清除 ModelState 但这不起作用。有什么建议么?提前致谢!!

    filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1))
    filterContext.HttpContext.Response.Cache.SetValidUntilExpires(False)
    filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches)
    filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache)
    filterContext.HttpContext.Response.Cache.SetNoStore()
4

2 回答 2

2

关闭表单的自动完成功能为我解决了这个问题。我感谢所有输入!

  <form autocomplete="off"></form>
于 2013-11-14T17:33:15.460 回答
0

有一种方法可以在javascript中一次性完成所有操作,就像这样......

document.getElementById("YourFormID").reset();

只需在您的表单中添加一个 id,您的所有输入都会在页面加载时重置。无论是第一次访问还是单击后退按钮都会缓存页面。与您的解决方案的最大区别在于“自动完成属性是 HTML5 中的新属性”。这意味着它在旧版浏览器中不受支持,尽管它可以满足您的需求,但它也会阻止用户自动填充字段。这意味着例如在文本类型输入中,用户不会看到他们可能在之前或其他页面上输入的单词的建议。你可以在这里看到一个例子。

于 2013-12-02T19:22:30.247 回答