2016-10-01 5 views
0

のViewModelそれはデリゲート型でないため 'のIEnumerable <SelectListItem>' を入力するラムダ式を変換できません

public class EmployeeIndexViewModel { 
    public int selectedDepartment { get; set; } 
    public IList departments1 { get; set; } 
} 

コントローラーアクション

List<Department> list = new List<Department>(); 
list.Add(new Department { ID = 1, Name = "D1" }); 
list.Add(new Department { ID = 2, Name = "D2" }); 
list.Add(new Department { ID = 3, Name = "D3" }); 
employeeIndexViewModel.departments1 = list; 
employeeIndexViewModel.selectedDepartment = "2"; 

ビュー

@Html.DropDownListFor(m => m.department, new SelectList(Model.departments1, "Id", "Name")) 

今、コードは正常に動作しています。しかし、私はこの作品に

new SelectList(Model.departments1, "Id", "Name") 

を好きではない私は、ちょうど私の見解では、それを結合し、私の見解モデルに追加します。 は、だから私は、私のViewModel

新しいのViewModelを変更

public class EmployeeIndexViewModel { 
    public int selectedDepartment { get; set; } 
    public IList departments1 { get; set; } 
    public IEnumerable<SelectListItem> departments2 { get; set; }//add this 
} 

新しいコントローラのアクション

List<Department> list = new List<Department>(); 
list.Add(new Department { ID = 1, Name = "D1" }); 
list.Add(new Department { ID = 2, Name = "D2" }); 
list.Add(new Department { ID = 3, Name = "D3" }); 
employeeIndexViewModel.departments1 = list; 
employeeIndexViewModel.selectedDepartment = "2"; 
employeeIndex2ViewModel.departments2 = new SelectList(list, "id", "name");// add this 

新しいビュー

@Html.DropDownListFor(m => m.department, new SelectList(Model.departments1, "Id", "Name")) 
@Html.DropDownListFor(m => m.department, (SelectList)(m => m.departments2))//add this 

私はこのエラーを得た:

Cannot convert lambda expression to type 'IEnumerable<SelectListItem>' because it is not a delegate type

+1

と交換し、 Model.departments2) '。 model-view-controllerタグは、パターンに関する質問のためのものです。 ASP.NET-MVCの実装には特定のタグがあります。 –

答えて

2

それはちょうど `@ Html.DropDownListFor(M => m.departmentにする必要がある新しいビュー (SelectList)(m => m.departments2)でラムダ式を削除し、Model.departments2

+0

既に 'IEnumerable ' - それをキャストする必要はありません –

+0

コメントありがとう – Nadeem

+0

ありがとうございました。スティーブンとナデム – jinxinhelloworld

関連する問題