WEB

[ASP.NET] MVC5 캐시(Cache) 제거

오늘의 기록, 오록 2020. 5. 12. 19:42

웹화면에서 데이터를 수정후 DB의 데이터는 변경되었는데 화면에서 변경전 데이터가 보여지는 경우가 있다.

 

캐싱으로 기존 데이터가 웹화면에 보여지는 것으로 ASP.NET MVC에서는 개별 컨트롤러 작업 또는 전체 컨트롤러 클래스에 [OutputCache] 특성을 추가하여 출력 캐싱을 제어할 수 있다.

 

 

전체 컨트롤러 클래스에 캐시 제거

1
2
3
4
5
6
7
8
9
[OutputCacheAttribute(VaryByParam = "*", Duration = 0, NoStore = true)] 
public class HomeController : Controller 
    public ActionResult Index() 
    { 
        return View(); 
    } 
}
 
cs

 

Duration 은 얼마만큼 캐시될 것인지 캐시 기간을 지정할 수 있다. ex) Duration=10 은 10초 동안 캐시된다.

VaryByParam 속성은 매개 변수 또는 쿼리 문자열 매개 변수가 다를때 동일한 콘텐츠의 다른 캐시된 버전을 만들 수 있다.

NoStore 속성은 프록시 서버와 브라우저에 캐시된 콘텐츠의 영구 복사본을 저장하지 않도록 알리는데 사용된다. (=true이면 NoCache)

 

참고1

https://stackoverflow.com/questions/12948156/asp-net-mvc-how-to-disable-automatic-caching-option

참고2

https://docs.microsoft.com/ko-kr/aspnet/mvc/overview/older-versions-1/controllers-and-routing/improving-performance-with-output-caching-cs