2012-03-09 2 views
1

양식이있는보기가 있습니다. 그 양식에는 텍스트 상자와 드롭 다운리스트가 2 개 있습니다.asp.net mvc 3 모델 바인딩 드롭 다운

이것은 내 ViewModel입니다.

public class NewApplicationViewModel 
{ 
    public ApplicationData Application { get; set; } 

    //Selectlists 
    public SelectList Questionnaires { get; set; } 
    public SelectList Jobs { get; set; } 
} 

ApplicatoinData 클래스는이

public class ApplicationData 
{ 
    [HiddenInput(DisplayValue = false)] 
    public Guid Id { get; set; } 
    [Required] 
    public ApplicantData Applicant { get; set; } 
    [Required] 
    public QuestionnaireData Questionnaire { get; set; } 
    [Required] 
    public JobData Job { get; set; } 
    public string Pdf { get; set; } 
} 

은 "설문"테 "작업"같은 dropdownlists에서 선택되어야한다 보인다. 드롭 다운에서 선택한 값을 내 "ApplicationData"의 개체에 바인딩 할 수 있습니까? 완료하려면이 양식을 제출할 제 컨트롤러 조치입니다.

[HttpPost] 
    public ActionResult NewApplication([Bind(Prefix="Application")]ApplicationData model) 
    { 
     var application = Mapper.Map<ApplicationData, Application>(model); 
     _applicationRepository.Add(application); 
     _session.Commit(); 
     return View(); 
    } 

감사

+0

NewApplicationViewModel 인스턴스를 만들 때 SelectList의 선택한 값을 지정할 수 있습니다. –

답변

3
@Html.DropdownListFor(
    x => x.Application.Questionnaire.ID, 
    Model.Questionnaires 
) 

@Html.DropdownListFor(
    x => x.Application.Job.ID, 
    Model.Jobs 
) 
1

바인드 드롭 다운 목록은 아래 링크를 참조하시기 바랍니다. 그것은 당신에게 매우 도움이 될 것입니다. 여기

Can't get selected drop down value to bind to view model property

ASP.NET MVC - drop down list selection - partial views and model binding

당신은 또한을 ViewData 또는 ViewBag에 저장할 수있는 것보다, 항목의 목록에 대한 모델의 속성을 생성하지 않으려면. 아래 샘플 코드를 찾으십시오.

<%= Html.DropDownList("Category.CategoryId", new SelectList((
IEnumerable<ProductManagement.Models.Category>)ViewData["CategoryList"], 
"CategoryId", "CategoryName"))%>