2016-07-22 3 views
0

選択したメニュー項目の表示されたテキストを編集できます。私はまだ選択メニューの値としてIDと表示値として名前を取るようにしたい。しかし、私はあなたがSelectList.Select()を使用して、ビューでSelectListItemSelectListの表示されたオプションの2つのレコード値を連結します。

IEnumerable<SelectListItem> TravelersList = db.Travelers 
    .Where(c => c.TravelerId == ThisId).AsEnumerable().Select(x => new SelectListItem 
{ 
    Value = x.Id.ToString(), 
    Text = string.Format("{0} {1}", x.Name, x.Destination) 
}); 
ViewBag.Travelers = TravelersList; 

に値を投影生成する必要が先

SelectList TravelersList = new SelectList(db.Travelers.Where(c => c.TravelerId == ThisId), "Id", "Name"); 

    foreach(var item as TravelersList) 
    { 
     //Concatenate the Traveler Name with the Destination 
    } 

    ViewBag.Travelers = TravelersList; 

答えて

1

と呼ばれる私の旅のモデルで異なる列にその表示値を連結します、それは次になります

@Html.DropDownListFor(m => m.someProperty, (IEnumerable<SelectListItem>)ViewBag.Travelers, ...) 

私はあなたがプロパティを持つビューモデルを使用することをお勧めしますビューは@Html.DropDownListFor(m => m.someProperty, Model.Travellers, ...)

+0

です。.Aselect()の前にAsEnumerable()を追加した後、私の質問に答えました。ありがとう! –

関連する問題