2011-08-19 5 views
0

저는 mvc를 처음 사용하기 때문에 등록 페이지에 내 모델의 테이블에 바인딩 된 드롭 다운 목록 인 필드를 추가하고자합니다 (조직 이름 및 ID 테이블). 그러나, 내 기본 응용 프로그램에서 AccountController RegisterModel 모델을 사용하여 등록 폼보기를 만드는 것을 볼 수 있습니다. 이것은 괜찮아요, 저는 이것을 방해하고 싶지 않습니다. 그러나 다른 모델 (조직의 모델)에 바인딩 된 페이지에 새 선택 상자를 추가하려고합니다. 어떻게해야합니까?등록 양식에 프로필 필드 추가하기 asp.net mvc3

내 모델과 RegisterModel 모두에 대한 래퍼 모델을 만드는 것이 좋습니다 다른 게시물을 찾았지만 작동하지 않습니다. 내 랩퍼 모델은 다음과 같습니다.

public class RegisterPeopleModel 
    { 
     public RegisterModel reg { get; set; } 
     public fwfEntities fwf { get; set; } 
    } 

이제 암호의 필드 유효성 검사기가 더 이상 작동하지 않습니다. 뷰의 코드 :

<div class="editor-field"> 
     @Html.PasswordFor(m => m.reg.ConfirmPassword) 
     @Html.ValidationMessageFor(m => m.reg.ConfirmPassword) 
    </div> 

지금이 렌더링 :

<div class="editor-field"> 
       <input data-val="true" data-val-equalto="The password and confirmation password do not match." data-val-equalto-other="*.Password" id="reg_ConfirmPassword" name="reg.ConfirmPassword" type="password" /> 
       <span class="field-validation-valid" data-valmsg-for="reg.ConfirmPassword" data-valmsg-replace="true"></span> 
      </div> 

공지 사항 스팬 입력의 ID를 더 이상 일치하는. 양식이 더 이상 전혀 작동하지 않습니다. 이것은 제가 잘못된 접근 방식을 취하고 있다고 믿게합니다. 다른 모델에 바인딩 된 페이지에서 내 선택 목록을 가져 오는 더 좋은 방법이 있습니까?

미리 감사드립니다.

답변

0

다른 모델에 바인딩 된 페이지에서 내 선택 목록을 가져 오는 더 좋은 방법이 있습니까?

모델이보기의 요구 사항을 충족하지 않으면이 모델을 수정해야합니다. ASP.NET MVC에서는보기 모델을 설계하고 도메인 모델이 아닌 뷰 모델 만 전달하는 것이 좋습니다 (예 : EF 자동 생성 클래스). fwfEntities 형식 인 것 같습니다. 따라서 뷰에 필요한 속성 만 포함하는 뷰 모델을 디자인하고 컨트롤러 액션이 모델을 가져 와서 모델을 뷰 모델에 매핑하고 마지막으로이 뷰 모델을 뷰에 전달하도록 데이터베이스에 쿼리하도록합니다.

0

RegisterModel을 보지 않고서는 ConfirmPassword에 필수 속성이 없다는 것을 추측 할 수 있습니다.

[Required(ErrorMessage = "A password is required")] 
    public string ConfirmPassword { get; set; } 

오 나는 ID의 기간 않도록 jQuery로 문제가 발생할하지 밑줄로 대체된다 생각합니다.

관련 문제