2012-10-02 3 views
1

MVC 패턴을 사용하여 뷰에 데이터를 올바르게 전달하는 방법에 대해 간단히 질문했습니다.MVC에서 뷰의 모델

저는 EditProfile/Register 모델 (이름, 이메일, 국가)이 있습니다. 보기에는 국가 드롭 다운 목록이 있으며 국가 목록을 전달해야합니다.

기본적으로 내 EditProfile/Register 모델과 List를 캡슐화하는 새로운 모델을 만들려면 수정해야합니까? 컨트롤러에서이 뷰 특정 모델을 만듭니 까? (내 데이터 액세스 프로젝트와 반대 됨).

감사합니다.

+0

명확히하기 위해 ASP.Net MVC를 사용하고 있습니까? 그렇다면'mvc' 태그 대신에 버전 특정 태그를 질문에 추가하십시오. 따라서 ASP.Net MVC 2를 사용한다면'asp.net-mvc-2' 태그를 사용하십시오. – Gromer

답변

2

뷰 모델 (ASP.Net MVC 뷰의 경우)은 이름을 제외한 도메인 모델 (데이터 계층의 모델)과 관련이 없습니다. 이 MVC: Data Models and View Models 질문은 세부 사항의 차이점/유사점을 다룹니다.

ASP.Net MVC 프로젝트 (데이터 계층이 아님)의 어딘가에 뷰 모델을 만들고 일반적으로 "모델"또는 "ViewModels"폴더 형제를 Controllers 폴더에 넣습니다. 뷰에 따라 일부 뷰 모델 클래스를 공유 할 수 있지만 단일 뷰로 사용되는 뷰 클래스가 있습니다.

0

당신은 뷰 모델 를 만드는이 작업

권장 (I)

을 수행하는 두 가지 방법으로 당신의 ViewModel 클래스 할당의 생성자 함수에 형 selectList의

<code> 

    public SelectList countrylist 
     { 
      get; 
      set; 
     } 
</code> 

의 속성을 추가 있습니다 국가 테이블의 국가 목록. 뷰에서

<code> 

    countrylist= new SelectList(db.countries.ToList(), "CountryID", "CountryName"); 

</code> 

당신은 당신이 (당신의 사건에 보인다)

이하지 않는 거의 전망이 모델을 사용하는 경우

<code> 
    Html.DropDownList("CountyID", Model.countrylist,"Select") 
</code> 

(Ⅱ)만을 사용하여 추가 할 viewmodel 대신 jquery를 사용하고 vew 페이지에 준비된 문서에서 국가 목록에 html select를 추가하십시오.

관련 문제