2017-12-27 165 views
0

我在使用Angular控制器的ASP.NET MVC Core应用程序中有一个客户页面。控制器正在调用API来获取数据。第一次加载页面时,这可以正常工作。 从此页面,用户可以导航到另一页面以添加客户。当新客户被添加时,用户被导航回主页面。但是,新客户没有显示在主页面上,它看起来像API不再被调用,所以用户被呈现旧数据。我在API解决方案中设置了一个断点,以确认添加新客户后API未被调用。客户页上从详细信息页面的角度重定向未显示最新数据

加载数据:

function customerController($http) { 
    var vm = this; 
    vm.customers = []; 

    $http.get("http://myapi") 
     .then(function (response) { 
      angular.copy(response.data, vm.customers); 
     }, function (error) { 
      vm.errorMessage = "Failed to load data: " + error; 
     }); 
} 

从细节页面的主网页重定向(也从一个角控制器):

vm.addCustomer = function() { 

       $http.post("http://myapi", vm.currentCustomer) 
        .then(function (response) {      
         $window.location.href = "./Customers"; 
        }, function (error) { 
         vm.errorMessage = "Failed to save new customer"; 
        });  
} 

的数据实际上存储在数据库中通过API,但在重定向的新数据没有显示。当我刷新主页面时,新客户仍未显示。我应该强迫Angular以某种方式再次调用API吗?主页面控制器的构造函数在重定向后调用。

+0

心灵的标签,您正在使用AngularJS工作,没有棱角。角是指2-> – Alex

回答

1

我想ASP.NET Core会缓存您的index.html文件或者启用了另一个缓存。

我会检查浏览器开发工具的响应头,以确保该页面没有缓存的属性。

或者试试这个:

app.UseStaticFiles(new StaticFileOptions 
    { 
     OnPrepareResponse = context => 
     {     
      if (context.File.Name == "index.html") { 
       context.Context.Response.Headers.Add("Cache-Control", "no-cache, no-store"); 
       context.Context.Response.Headers.Add("Expires", "-1"); 
      } 
     } 
    }); 

此代码是从https://stackoverflow.com/a/45329316/3710672

相关问题