2011-11-01 3 views
6

전체 모델에 대한 사용 방법 (또는 시뮬 일)완전한 모델을 위해 @ Html.HiddenFor를 사용할 수있는 방법이 있습니까?

@Html.HiddenFor 

있습니다. 그래서 그 대신 같은 일을의

이 같은

@Html.HiddenFor(model => Model.Person.Name) 
    @Html.HiddenFor(model => Model.Person.LastName) 
    @Html.HiddenFor(model => Model.Address.Street) 

사용 무언가 (이 예제가 작동하지 않습니다)

@Html.HiddenFor(model => Model) 

내가 이미 유래와 구글에 검색 한. .. 그러나 그것에 관해 아무것도 발견하지 않고 있었다.

DB에 저장되지 않은 다른 모델의 일부 값을 유지해야하므로 Html.HiddenFor 만 사용하면 ID가 나를위한 옵션이 아닙니다.

미리 감사드립니다.

+0

당신이하고 싶지 않아! 전달 된 엔티티의 기본 키만 가져온 다음 서버 측에서 백업해야합니다. 그렇지 않으면 클라이언트는 주소 등을 변경할 수 있습니다. DB에 저장하지 않고 유지해야하는 경우 세션 또는 쿠키를 사용하십시오 또는 localstorage 또는 무언가 대신에 – Milney

답변

7

당신이 숨겨진 입력에 있어야 할 속성을 선택하고 다음과 같이 모델의 HiddenInputAttribute을 추가

public class MyModel 
{ 
    [HiddenInput] 
    public int MyProperty { get; set; } 
} 
+0

@ 다린 & @ Haythem 덕분에, 나는 이번 주말 답변을 테스트 할 것입니다! – Gyocol

3

MVCContrib's Html.Serialize method을 살펴볼 수 있습니다. 그것은 일종의 viewstate 에뮬레이션 (내부적으로 ViewState를 실제로 사용합니다 :-)).

다른 방법으로는 고유 ID를 숨겨진 필드로 저장하고 컨트롤러 조치 내부에서이 ID를 사용하여 기본 데이터 저장소에서 해당 모델을 가져옵니다.

관련 문제