2009-06-03 3 views
3

작은 배경 정보가 먼저 나타납니다. 나는 대부분의 경력에 ​​대해 Web Forms를 사용하고 있으며 최근에 .NET MVC에 관심을 갖기 시작했습니다. 나는 그것이 무국적자라는 것을 알고 있지만, 나는 그것이 어떻게 완벽하게 실현 가능한지 이해하지 못한다. 양식 응용 프로그램에서 사용자가 인증하고 사용자 ID와 그 사용자 세션에 배치되는 일부 역할을 반환합니다. 내가 그들을 필요로 할 때, 내가해야 할 일은 그것을 세션에서 꺼내서 가지고 있습니다. 내가 읽은 세션과 MVC는 상호 배타적입니다. TempData를 사용하여 값을 전달할 수 있지만 한 페이지를 방문한 후 사라지는 경우에만 계속 읽었습니다. 데이터를 전달하려는 모든 컨트롤러에 중복 코드를 추가하는 것 이외의 MVC 사이트에서 데이터를 "유지"할 수있는 표준 방법이 있습니까?.NET MVC 및 페이지 간 안전하게 데이터 전달

답변

2

은 ASP.NET MVC 프레임 워크는 ASP.NET 프레임 워크 기반으로 구축되어 같은, 당신은 ASP.NET MVC에서 세션 상태를 사용할 수 있습니다

Session["MyVar"] = "SomeValue"; 
3

을 여기 측면에서 약간의 혼동이있을 수 있습니다 생각 . 진정으로 무 상태 인 것은 HTTP 프로토콜입니다. ASP.NET WebForms는 HTTP의 무국적 상태를 "해결"하고 상태 기반 웹 기반 응용 프로그램 프레임 워크를 만드는 프레임 워크를 작성하고 개발하기 위해 개발 된 기술이었습니다. 이것이 ViewState와 같은 WebForms의 내용을 보는 이유입니다. ViewState는 기본적으로 파이프를 따라 응용 프로그램의 상태를 전달합니다.

ASP.NET MVC가 등장하여 다른 접근 방식을 취했습니다. 그것은 HTTP의 무국적자를 포함합니다. 이것이 MVC에 ViewState가없는 이유입니다.

그러나 그렇다고 더 이상 상태 저장 엔티티와 상호 작용하지 않는다는 의미는 아닙니다. 서버 측 코드 (이 경우 IIS 또는 기타)를 실행하는 서버가 상태 저장뿐만 아니라 클라이언트 시스템 (예 : 브라우저)은 상태 저장 응용 프로그램입니다.

따라서 서버 측에있는 항목은 여전히 ​​Stateful (예 : Session, Application, Cache)이며 여전히 사용할 수 있습니다. 또한 클라이언트 측은 상태 기반이므로 클라이언트 측 스크립팅이 최근 몇 년 동안 매우 강력 해졌습니다. 사람들은 브라우저의 상태를 최대한으로 활용하려고합니다.

관련 문제