2013-12-13 3 views
0

내 뷰에서 모든 속성을 사용하지 않는 뷰가 있습니다. 예를 들어 userId 속성은 뷰에 표시 할 필요가 없습니다. 지금 나는이 값을 숨겨진 필드에 저장하고 있습니다. 필드 또는 숨겨진 필드를 통해 내 모델의 모든 데이터를 표시하지 않고 MVC에서 세션이나 다른 것과 같은 내 견해를 그대로 유지하는 표준 또는 더 안전한 방법이 있습니까?모델 뷰에 대한 모범 사례

MVC가 다른 지원을 제공하는지 또는 내가 본 이상적인 방법이 있는지를 궁금해합니다.이 webforms가 세션에서 저장할 수있는 기본적인 질문처럼 보입니다.

편집 좋아요. 양식이 컨트롤러에 모델을 다시 제출할 때 읽기 전용으로 편집 가능한 값 또는 숨김 필드에 UserId 필드를 저장하지 않으면 UserId가 null입니다.

나는 이것을 방지하는 다른 방법을 어떻게 묻는가? 표시 할 필요가없는 사용자 ID (또는 모든 속성) 숨기기의 정상적인 최선의 방법은 무엇입니까?

+0

예 (사용자로부터 아무런 가치도없는 필드)는보기에서 제거 할 수 있습니다. 그것은 간단하고 표준입니다. 제거 후 문제가 발생하면 도움을받을 수 있습니다. – Sami

+0

모델이 컨트롤러로 다시 전송 될 때 숨겨진 필드의 값을 나타내지 못하거나 숨겨진 필드 나 편집 가능한 필드에 저장되지 않은 필드가 null로 반환 될 때 문제가 발생합니다. – ChampChris

+0

예 .. 그 문제도 있습니다. 컨트롤러에서 뷰를 가져올 때 해당 null 필드 값을 설정할 수 있습니다. 사용자로부터 그것을 가져 가지 않으므로 컨트롤러에서 쉽게 액세스 할 수있는 서버 쪽에서 사용하게됩니다. – Sami

답변

1

각 요청에 대해 클라이언트의 UserId 속성을 보내면 아무런 문제가 없습니다. 브라우저에서 나오는이 사용자 ID가 실제로 인증 된 사용자에 속하는지 여부를 확인하는 권한 부여 논리를 구현해야하는 것은 서버에 있습니다. ASP.NET 세션을 사용할 필요가 없습니다.

Forms Authentication을 사용하여 현재 인증 된 사용자를 추적하는 경우이 사용자를 안전하게 검색 할 수 있습니다.

+0

예 Forms Auth를 사용하고 있습니다. 어쩌면 질문 일 수도 있습니다. 이것은 내 첫 번째 완전 단층 (계층) MVC 응용 프로그램입니다. webApi를 사용하여 MVC 웹 클라이언트와 모바일 클라이언트를 지원합니다. 그래서 내 무지를 몰라. 내가 ORM 모델을 항상 사용하지 않아야하지만, 사용자가 조작해야하는 것에 따라 각 ORM 모델의 부분 집합을 가져야합니다. 이것은 추가 작업이 많은 것처럼 보입니다. 필드를 업데이트해야하는 저장 프로세스를 수동으로 알려주지 않아도됩니다. – ChampChris

+0

항상 특정 뷰에 대한 뷰 모델을 작성합니다. 뷰 모델은 여러 도메인 모델로 구성 될 수 있습니다. –

+0

10 필드가있는 테이블을 업데이트하면 모델은 업데이트하기 위해 사용자 3에게만 부여됩니다. 그것은 엔티티가 변경된 필드를 수정하고 저장한다고 표시하는 것을 의미합니다. 그래서 모든 수정되지 않은 필드가 변경되지 않습니다? – ChampChris

관련 문제