본문 바로가기
WEB

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

by 오늘의 기록, 오록 2020. 5. 12.
반응형

웹화면에서 데이터를 수정후 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

반응형