2012-09-02 4 views
0

모델이 있습니다. 이 같은이 모델의 모양을Asp.net의 드롭 다운 목록 MVC 3 from viewModel

public int Id { get; set; } 
[Required] 
public string Name { get; set; } 
[Required] 
public List<Category> Parent { get; set; } 

추가 조치에 나는 채울 부모 :

public ViewResult Add() 
{ 
    var addCategoryModel = new CategoryEditModel 
    { 
     Parent = Mapper.Map<List<Category>>(_productRepository.Categories.ToList()) 
    }; 
    return View("add", addCategoryModel); 
} 

내가 양식을 제출하면 내 모델 상태가 항상 유효하지 않습니다 DropDownList로 내 선택한 값 "..is 때문에 유효하지 않습니다. " 나는 뭔가 잘못했다. 이 작업을 수행하는 올바른 방법은 무엇입니까?

+0

당신이 당신의보기를 표시 할 수? –

답변

1

저는 MVC에서도 드롭 다운과 도우미로 어려움을 겪었습니다. 내가 만들 내보기 모델에서

:

public IEnumerable<SelectListItem> employeeList 
    { 
     get 
     { 
      return new SunGardDBEntities() 
       .employees 
       .OrderBy(e => e.employeeFName) 
       .ToList() 
       .Select(e => new SelectListItem { Text = e.employeeFName + " " + e.employeeLName, Value = e.employeeID.ToString() }); 
     } 
    } 
:

일반적으로
public List<SelectListItem> employeeList; 
public int SelectedItemID; 

는 데이터베이스/엔티티 프레임 워크를 통해 드롭 다운을 채우는 얻을 것이다 나는 결국 내 방법으로 다음과 같은 접근 방식을 채택하고있다

그리고 내 .cshtml 파일에 나는 그 말 :

@Html.DropDownListFor(model => model.SelectedItemID, new SelectList(Model.employeeList, "Value", "Text"), new Dictionary<string, object> { { "data-placeholder", "Choose a sandbox..." }, { "class", "chzn-select" }, { "style", "width:200px;" } })