ID
및 Name
필드가있는 데이터베이스 테이블 내에 저장된 열거 항목이 있습니다. 폼의 DropDownList 안에이 테이블에 저장된 값을 표시하려고합니다. 그런 다음 사용자는 값을 선택하고 양식을 제출합니다.데이터베이스 항목에서 DropDownList 만들기 및 양식 제출에 바인딩
I found a way to easily create a DropDownList from an enumeration (물론 테이블의 모든 레코드의 이름 필드로 DropDownList를 채우는 것이 가장 좋을지라도). 그러나 나중에 찾을 방법을 찾지 못했습니다 DropDownList를 다른 양식 값과 함께 데이터베이스 (FK - PK)에 넣을 양식에 제출합니다.
이러한 바인딩을 수행하는 방법을 보여주는 몇 가지 샘플 코드를 제공 할 수 있습니까?
업데이트 : 끝내 주셔서 감사합니다. 나는 또 하나의 질문을 가지고있다 : 은 AJAX을 통해 DropDownList 내용을 가져올 수 있으며 DropDownList와 ViewModel의 SelectList (ID와 Name 매개 변수 모두 포함)에 넣어야합니까? 필자는 사용자가 입력 한 내용을 기반으로 선택적으로 내용을 가져오고 ViewModel을 가져온 데이터로 채우고 싶습니다. 그런 다음 컨트롤러
public class MyViewModel
{
public int SelectedValue { get; set; }
public IEnumerable<SelectListItem> Items { get; set; }
}
:
인가? 바로 뷰 모델이라고합니다. 나는 그와 같은 용어를 뛰어 넘었지만 그것이 의미하는 바를 결코 알지 못했고 그것만큼 사용하기 쉽다. ASP.NET MVC에는 좋은 모델 바인더가 있습니다. –
뷰 모델은 뷰 (뷰/편집 할 데이터)를 반영하기 위해 제공하는 클래스이므로 뷰와 밀접하게 연결되어 있습니다. Model은 비즈니스 논리를 나타냅니다. 비즈니스 엔티티를 나타내며보기에 표시되는 더 많은 필드를 포함하는 클래스가 될 수 있습니다. 리포지토리는 일반적으로 모델에서 작동합니다. 따라서 컨트롤러에서 모델 객체를 가져 와서 뷰 모델에 매핑하고이 뷰 모델을 뷰에 전달하는 저장소를 사용할 수 있습니다. 다른 컨트롤러 액션에서 동일한 모델을 페치 할 수 있지만 다른 뷰 모델에 매핑 할 수 있습니다. –
도움을 주셔서 대단히 감사드립니다! 한 가지 더 빠른 질문 : Validation 속성 (예 : RequiredAttributes)을 사용하여 ViewModel의 속성을 꾸미면 폼이 제출되고 ViewModel이 Controller로 반환되거나 처음 코드를 만들 때 코드를 깨뜨리는 경우에만 적용됩니다 HttpGet 부분의 ViewModel 인스턴스? –