2015-12-15 6 views
0

Я использую ViewBag заполнить DropDown так:Использование ViewBag для заполнения выпадающий Пользовательский текст

Контроллер:

ViewBag.bolumList = db.SbtBolum.OrderBy(s => s.BolumAd) 

Вид:

@Html.DropDownListFor(model => model.YGKisiBolum.Bolum, new  SelectList(ViewBag.bolumList, "BolumID" , "BolumAd"), "Seçiniz", new { @class = "form-control" }) 

Теперь я хочу, чтобы показать объединенные два столбца в текстовом поле, как в SQL:

SELECT BolumID As Value, BolumAd+" "+BolumExtra AS Text FROM SbtBolum 

Как я могу это сделать с помощью ViewBag и Linq?

ответ

4
var values = db.SbtBolum.OrderBy(s => s.BolumAd).ToList().Select(s => SelectListItem 
{ 
    Value = s.BolumID.ToString(), 
    Text = s.BolumAd + " " + s.BolumExtra, 
}); 
ViewBag.bolumList = values; 

и на ваш взгляд:

@Html.DropDownListFor(
    model => model.YGKisiBolum.Bolum, 
    (IEnumerable<SelectListItem>)ViewBag.bolumList, 
    "Seçiniz", 
    new { @class = "form-control" } 
) 

Это было сказано/показано, я полностью рекомендую против такого подхода. Я бы предпочел использовать строго типизированную модель представления для этой цели и избавиться от ViewBag.