나는 항상 MVC 응용 프로그램을 개발 중이다.왜 내 viewmodel 속성이 null 또는 0이됩니까?
저는이 시점에서 내 도메인 객체와 동일한 viewmodel을가집니다. 내 컨트롤러가 뷰 모델을 빌드하고 뷰에 전달합니다. 사용자가 기본 키 및/또는 외래 키를 표시하지 않기 때문에보기에는 일부 속성 만 표시됩니다. 기본 키의 경우 데이터베이스를 업데이트/삭제하려면 데이터가 있어야합니다.
뷰에서 viewmodel 속성을 사용하지 않으면 ViewModel을 다시 전달할 때 기본값 (숫자 값 유형의 경우 0, 참조 유형의 경우 null)으로 설정됩니다. 이것은 올바른 행동입니까?
편집보기에 전달 된 viewmodel에 (예상했던대로) 모든 속성이 포함되어 있음을 확인했습니다.
질문 - 일단 뷰가 렌더링되면 뷰 모델은 어떻게됩니까? 내 뷰 모델에 뷰에서 사용되지 않는 속성이 포함되어 있으면 해당 값이 사라지나요? 예를 들어 컨트롤러에서 Edit 액션을 실행하기 위해 Edit action 링크를 클릭하면 액션에 전달 된 ViewModel은 화면에 표시되지 않는 한 속성을 포함하지 않습니다. 왜?
여기는 ASP.NET MVC 4 RC입니다.
를 사용하는 경우
은 그나마 값을 기대하여HttpPOST
행동의 값을 기대합니다. FirstName) 및 @ Html.TextBoxFor (m => m.LastName)이지만 둘 다 submit시 null로 돌아옵니다. 그리고 그들은 아름답게 데이터베이스의 데이터로 채워집니다. 예를 들어, 이름 텍스트 상자는 "John"을 표시하고 성 텍스트 상자는 "Doe"를 표시합니다. 제출시 이러한 값을 얻지 못하는 이유는 무엇입니까? 그들은 null입니다. 흥미롭게도 숨겨진 필드는 @Html.HiddenFor (m => m.EmployeeId)가 미리 채워진 값으로 돌아 오는 것으로 선언되었습니다. – Stack0verflow