2010-02-25 6 views
0

보기 페이지에 사용자 컨트롤 (ascx)의 인스턴스가 2 개 있습니다.ASP.Net MVC 컨트롤에서 ViewData가 재설정됩니다.

사용자 정의 컨트롤 내에 ViewData [ "xyz"] = "True"로 설정했습니다.

첫 번째 인스턴스는 ViewData [ "xyz"]를 "True"로 설정합니다. 그러나이 동일한 값은 사용자 정의 컨트롤의 두 번째 인스턴스에서 유지되지 않습니다.

ViewData [ "xyz"]가 여전히 "True"이지만 null입니다.

도와주세요.

사용자 정의 컨트롤에서 공유 변수를 갖는 가장 좋은 방법은 무엇입니까?

답변

3

컨트롤러 내에서 로직을 수행해야합니다. 사용자 컨트롤 (뷰, 부분 뷰)에는 ViewData 컬렉션에 데이터를 입력해야하는 논리가 없어야합니다. 보기는 프레젠테이션 용입니다.

0

아마도 당신이 ((ViewPage)Page).ViewData["whatever"] = "value";

을 할 수있는 더 나은 아이디어는 사용자의 컨트롤 사이에서 공유 상태를 필요로하지 않는 아마

관련 문제