兄弟最近就用asp.net做了个简单的CRM系统,但是发现一个问题,就是几个人在输入关键字再点搜索后,结果好像是被服务器缓存了,明明输入的关键字是A,结果变成另一个人输入的关键字B。
请问要怎么解决这个问题比较好呢?

解决方案 »

  1.   

    Page_Load事件中加上Context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
      

  2.   

    在aspx文件中加下面的代码是不是一样的效果呢?
    <%@ OutputCache Duration="0" VaryByParam="none" %>
      

  3.   

    用了ajax了吗?另外没有加页面级的缓存吧?
      

  4.   

    没有加ajax。
    本来我是在页面中放了<%@ OutputCache Duration="0" VaryByParam="none" %>这个。
    <head>中也没有声明cache-control
      

  5.   


    这不叫缓存,叫做混乱吧。混乱有各种各样,但是基本上都是程序员睁着眼睛自己打入的,往往他们是以为很有理由的情况下打入的代码,比如有些人把一些变量声明成了static,等等。
      

  6.   


    Duration=0 我还真的不知道是什么意思?如果是你自己加的,删除就是了。使用OutputCache,先研究明白了如何让后台数据修改时立刻清除缓存。
      

  7.   

    是否使用一些静态数据,定时清除缓存,时间设置
    如果你没有设置Cache,页面本身就不会被Cache的
      

  8.   

    应该是你有一个相关的 static的全局变量或对象
      

  9.   

    只是写了static的通用类,比如获取一个datatable
    但是页面中的变量都不是static的。
    看来以后写通用类的时候,用datatable的时候,尽量少用static了,
    虽然调用的时候可以直接用,方便
      

  10.   

    Response.Expires=0;
    清楚缓存;
    不过如楼上所说你这种问题,完全是编程不小心好好调试吧, 看下生成的SQL脚本。
    缓存不会把A换成B