2012-07-23 4 views
3

이것은 내 컨트롤러 메서드입니다. 아무도 내가 어떻게 서버에 다음과 같은 방법에 대한 outputcache 쓸 수 설명 할 수 있습니다. 개체 매개 변수 MVC에서 출력 캐시 사용

public JsonResult GetCenterByStateCityName(string name, string state, string city, bool sportOnly, bool rvpOnly) 
    { 
     var result = GetCenterServiceClient().GetCentersByLocation(name, city, state, sportOnly, rvpOnly).OrderBy(c => c.Name).ToList(); 
     return Json(result); 
    } 

+1

POST 메서드에 대한 캐싱을 원하십니까? – Shyju

+0

예, POST 용 캐싱을 원합니다. – Krishh

답변

5

당신이 문서 봤어 감사? UPDATE - - 간단히 말해서

http://msdn.microsoft.com/en-us/library/system.web.mvc.outputcacheattribute.aspx

, 그냥 액션

[OutputCache(CacheProfile = "SaveContactProfile", Duration = 10)] 
public JsonResult SaveContact(Contact contact) 
{ 
    var result = GetContactServiceClient().SaveContact(contact); 
    return Json(result); 
} 

에 속성을 설정 당신이 jQuery를 통해 직접 Ajax 호출을하는 경우

, OutPutCache는 기본적으로 true로 설정된 "cache"매개 변수에 따라 무시 될 수 있습니다.

$.ajax({ 
    url: someUrlVar, 
    cache: true, /* this is true by default */ 
    success : function(data) { 

    } 
}); 

당신이 전화를 두 가지 방법으로 캐시 할 수 있습니다로 보는 그냥 뭔가 :

는 예를 들어, 매개 변수는 같은 일을하는 경우 무시 될 것이다.

참조 :

+0

감사합니다. 나는 이것을 지금 시도 할 것이다. VaryByParam 속성을 설정해야합니까? – Krishh

+0

캐시에 Ajax를 사용하는 것과 관련된 주요 정보를 포함하도록 정보를 업데이트했습니다. 귀하의 질문에 대한 훌륭한 기사는 다음과 같습니다. http://www.asp.net/mvc/tutorials/older-versions/controllers-and-routing/improving-performance-with-output-caching-cs – anAgent

+0

주셔서 감사합니다. 나는 분명히 이해하고있다. – Krishh

3
[OutputCache(Duration = 3600, VaryByParam = "name;state;city;sportOnly;rvpOnly")] 
public JsonResult GetCenterByStateCityName(string name, string state, string city, bool sportOnly, bool rvpOnly) 
{ 
     var result = GetCenterServiceClient().GetCentersByLocation(name, city, state, sportOnly, rvpOnly).OrderBy(c => c.Name).ToList(); 
     return Json(result); 
} 

Duration 값 여기서 3천6백초이다. 캐시는 1 시간 동안 유효합니다. 다른 매개 변수에 대해 다른 결과를 원하기 때문에 VaryByParam 속성 값을 제공해야합니다.

+0

VaryByParam = "*"는 이름이나 상태가 변경된 경우 이전에 캐시 된 결과를 가져 오지 않는 조건에 맞습니까? – Krishh

+1

매개 변수가 객체 인 경우에도 작동합니까? – Krishh