MVC控制器操作方法服务器缓存问题

时间:2018-09-22 08:40:05

标签: asp.net-mvc angular web-services

尽管在第二次调用期间服务器日志中注意到不同的输入连续调用相同的MVC控制器操作方法,但仍保留在第一次调用中传递的输入参数值。

下面是使用angular进行的调用过程

 var oDat = {
   dob: '',
   tob: '',
   latlng: '',
   timezone: ''
   };
   oDat.dob = dob.split('T')[0].split('-')[2] + '|' + dob.split('T')[0].split('-')[1] + '|' + dob.split('T')[0].split('-')[0];
   oDat.tob = dob.split('T')[1].split(':')[0]  + '|' + dob.split('T')[1].split(':')[1] + '|' + '0';
   oDat.latlng = latlng;
   oDat.timezone = tz;
   //let headers = new Headers({ 'Content-Type': 'application/json; charset=utf-8' });
    let headers = new HttpHeaders();
    headers = headers.set('Content-Type', 'application/json; charset=utf-8');   
    return this.http.post(this.apiUrl9, JSON.stringify(oDat), {headers: headers}).pipe(
    map(this.extractData),
    catchError(this.handleError)
   );

更新 即使禁用了HTTP缓存,问题仍然存在

headers.append('Cache-control', 'no-cache');
    headers.append('Cache-control', 'no-store');
    headers.append('Expires', '0');
    headers.append('Pragma', 'no-cache');

1 个答案:

答案 0 :(得分:0)

我通过在操作方法上方设置以下属性来解决服务器缓存问题

[OutputCache(NoStore = true, Duration = 0)]

这是帮助Prevent Caching in ASP.NET MVC for specific actions using an attribute

的链接