2012-09-02 105 views
0

我有一個模型。這種模式是這樣的:Asp.net MVC 3從viewModel Dropdownlist

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的選定值」 ..是無效。」 我犯了錯誤。什麼是正確的方法來做到這一點?

+0

你能證明你的觀點? –

回答

1

我已經有一些困難的時候與下降和幫助他們在MVC也。我終於已經採用了以下方法,因爲我的方式:

在我的視圖模型創建:

public List<SelectListItem> employeeList; 
public int SelectedItemID; 

通常會對通過數據庫/實體框架下填充降得:

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() }); 
     } 
    } 

而在我的.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;" } })