, 그것은 마지막에 삭제 표시됩니다 그 요청의. 삭제는
TempData["value"] = "someValueForNextRequest";
처럼 TempData에 뭔가를 넣어 그리고 당신이 그것을 액세스 다른 요청에 값이있을 것입니다하지만 최대한 빨리 당신이 그것을 읽을 때, 값이 표시 될 경우 의미
:
//second request, read value and is marked for deletion
object value = TempData["value"];
//third request, value is not there as it was deleted at the end of the second request
TempData["value"] == null
Peek
및 Keep
방법은 당신이 삭제를 표시하지 않고 값을 읽을 수 있습니다. TempData에 값이 저장된 첫 번째 요청으로 돌아 가자.
가 Peek
사용하면 하나의 호출로 삭제를 표시하지 않고 값을 얻을 msdn를 참조하십시오 Keep
와
//second request, PEEK value so it is not deleted at the end of the request
object value = TempData.Peek("value");
//third request, read value and mark it for deletion
object value = TempData["value"];
당신은 유지하려는 삭제 표시가 된 키를 지정합니다. 객체를 가져오고 나중에 삭제에서 저장하는 것은 두 가지 다른 호출입니다. 당신은 항상 다른 요청에 대한 값을 유지하고자 할 때 msdn
//second request, get value marking it from deletion
object value = TempData["value"];
//later on decide to keep it
TempData.Keep("value");
//third request, read value and mark it for deletion
object value = TempData["value"];
당신은 Peek
을 사용할 수 있습니다 참조하십시오. 값을 유지하려면 추가 로직에 따라 달라 지므로 Keep
을 사용하십시오.
당신이 좋은 TempData가 here를 작동하는 방법에 대한 질문과 here
는 희망이 도움이!
고마워요! 이제 매우 깨끗합니다 :) –
삭제는 실제로 언제 발생합니까? 따라서 읽은 후에 삭제 표시가 된 다음 다른 물건을 사용하고 보관을 사용하기로 결정한 경우 리디렉션을 시작한 한 주변에있을 수 있습니다. – eaglei22
결과와 모든 필터가 실행 된 후 현재 요청이 끝날 때 삭제됩니다. 이것은 [기본 컨트롤러 클래스] (https://aspnetwebstack.codeplex.com/SourceControl/latest#src/System.Web.Mvc/Controller.cs)를 사용하는 동안, 'TempData.Save'의 사용법을 확인하십시오. 거기에 –