2009-10-05 2 views

답변

5

간단합니다. 그것은 제거되지 않습니다. ViewState를 설정하고 읽을 수 있습니다. 이전 요청의 내용이 포함될 것으로 기대하지 마십시오. ViewState에서 속성 값을 저장하는 특정 ASP.NET 서버 컨트롤이 ASP.NET MVC에서 작동하도록 만들 수 있기 때문에 실제로 편리합니다. 한 요청에서 다른 요청으로 ViewState를 유지하는 것이 중요하지 않는 한 이러한 컨트롤은 여전히 ​​정상적으로 작동합니다.

한 요청에서 다른 요청으로 ViewState의 지속성을 제거하면 당연히 쓸모가 없습니다. 이것이 바로 사람들이 일반적으로 ASP.NET MVC에 "ViewState가 없다"고 말하는 이유입니다. 이것은 기술적으로 정확하지 않습니다. ViewState는 실제로 존재합니다. 그것은 단지 어떤 것에도 유용한 형태로 존재하지 않습니다.

+0

에 의존 ASP.NET의 웹폼 컨트롤의 대부분을 사용할 수없는 것을 의미합니다. 내 업데이트에 응답 : "일반 ASP.NET"(포스트 백)에서 HTML 페이지에서 숨기기 위해 ViewState 숨겨진 입력을 제거 할 수 없습니다. 폼에서 runat = "server"를 제거하십시오. 감사! – 19WAS85

+0

ASP.NET MVC는 결코 ViewState 필드를 페이지에 넣지 않습니다. 그러나 WebForms * 디자이너 *는 MVC 페이지에서이 필드를 추가합니다. 이는 MVC 뷰와 함께 사용하지 않는 많은 이유 중 하나입니다. 이 숨겨진 입력을 제거하는 것은 전적으로 안전합니다. –

4

MVC는 viewstate를 사용하지 않습니다. (웹은 그렇듯이) 완전히 상태가 저장되지 않습니다.

생각을 조금 바꾸고 앱이 요청 - 응답 모델 (항상 그렇지만 표준 asp.net은 viewstate를 사용하여 개발자를 속여서 "속임수"로 사용)로 실행한다고 생각할 수도 있습니다. , 생각하기, 또는 페이지에 상태가있는 것처럼 코딩).

1

ViewState는 ASP.NET MVC 페이지 수명주기의 일부가 아닙니다. ViewState는 ASP.NET WebForms 응용 프로그램에서만 사용할 수 있습니다.

이것은 또한 당신은 내가 viewstate가 제거되지 않습니다 이해 ViewState에

관련 문제