나는 사람이 수동으로 HtmlPrefix을 추가 된과 게시물 모델에서 뷰 모델을 사용하고,이 개 장소에서 사용되는 부분도있다, 그래서 id 필드는 다음과 같습니다MVC는 부분보기 캐싱 모델 ID와 이름
id="Model_Address_AddressLine1"
다른 곳에서는보기 모델이 필요하지 않으며 ID는 단지 "AddressLine1"입니다. 그러나 동일한 부분보기입니다.
"Model_Address_AddressLine1"이있는 페이지를 먼저 방문하면 IIS가이 부분보기를 캐시에 저장 한 다음 다른 페이지로 이동할 때 ID가 "Model.Address.AddressLine1"로 캐싱되어 유효성을 검사하지 않습니다 ""AddressLine1 "을 가져 오지 않습니다.
ajax 호출을 cache : false로 설정하고 NoStore를 작업 OutputCache 특성에 설정하려고했으나 여전히 부분 뷰 모델 ID와 이름을 캐시합니다.이 작업을 중단하는 방법이 있습니까?
:
return helper.Partial(partialName, accessor.Compile().Invoke(helper.ViewData.Model),
new ViewDataDictionary(helper.ViewData)
{
TemplateInfo = new TemplateInfo
{
HtmlFieldPrefix = prefix
}
})
응답 헤더가 캐싱을 확인 :
이 추가 된,이 헬퍼 부분 뷰의 페이지 중 하나에 접두사를 추가 코드가 아닌 다른 도움이된다면이 코드입니다 Accept-Encoding : gzip, deflate, sdch Accept-Language : en-US, text/html, application/xhtml + xml, application/xml, q = 0.9, image/webp, /, q = 0.8 en = q = 0.8 캐시 제어 : max-age = 0 연결 : keep-ali ve 쿠키 : __ RequestVerificationToken = qnKmH92lRoXCZWl_146N3uPiGRnWJCRZis6V_6cQ7mUJUdlVfAQVAxeTBtnhdTgM2s_NezoZghhwCrqBrv4GcjrCZr0XhG-6bHq7kfhlRrw1; ASP.NET_SessionId = dh225cux11sckpxl2uke30q3; FedAuth = 77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48U2VjdXJpdHlDb250ZXh0VG9rZW4gcDE6SWQ9Il9iZTI5MDk4OC01ZjdjLTQyZTktYjMxOS0zOGJhYzM5OTBlMjctMzg3NTUxQjQyM0JENjFDQzIwMEQyQTc2MTRBQzBDMDYiIHhtbG5zOnAxPSJodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy93c3MvMjAwNC8wMS9vYXNpcy0yMDA0MDEtd3NzLXdzc2VjdXJpdHktdXRpbGl0eS0xLjAueHNkIiB4bWxucz0iaHR0cDovL2RvY3Mub2FzaXMtb3Blbi5vcmcvd3Mtc3gvd3Mtc2VjdXJlY29udmVyc2F0aW9uLzIwMDUxMiI + PElkZW50aWZpZXI + dXJuOnV1aWQ6YTM1MWFmNjItYzU0Mi00MzQ2LWI2NzYtNGIyNjE0Y2YxMjU2PC9JZGVudGlmaWVyPjwvU2VjdXJpdHlDb250ZXh0VG9rZW4 + 호스트 : 127.0.0.1 : 444 사용자 에이전트 : 모질라/5.0 (윈도우 NT 6.1; WOW64) AppleWebKit/537.36 (게코 같은 KHTML) 크롬/34.0.1847.131 사파리/537.36 응답 헤더보기 소스 캐시 제어 : no-cache, no-store 콘텐츠 인코딩 : gzip 콘텐츠 길이 : 9958 내용 유형 : text/html; 문자셋 = UTF-8 날짜 : 2014년 (화) (13) 월 그리니치 표준시 08시 15분 52초 는 사용 기간 제한 없음 : -1 에서 Pragma : 비바리에는 캐시 : 수락 - 인코딩 X-프레임 - 옵션 : SAMEORIGIN
partialview를 호출하는 부모 메서드 모두에서 캐싱 및 Outputcache를 false로 설정 했습니까?브라우저 캐싱을 해제했는지 확인 했습니까? – SkyBlues87
@ SkyBlues87 두 컨트롤러 모두 같은 컨트롤러에서 동일한 동작을 호출하므로 둘 다 설정되었습니다. 브라우저 캐시를 지우면 IIS가 여전히 캐시하지만 캐시를 끌 수 없기 때문에 브라우저는 캐시하지 않습니다. – User101
NoCache 속성을 사용해 볼 수 있습니까? –