2012-02-01 2 views
1

Я довольно новичок в MVC3 и разрабатываю DropDownListFor, для которого мне нужно получить как значение, так и текст для цели результата отображения. Любые идеи по этому вопросу? Благодаря!Как получить текст DropDownList из выбранного значения через Linq

В мой контроллер:

 ViewBag.vehicleSizes = totalGreenCalculator.GreenCalculator.getVehicleFuelEfficiency(); 

В моей модели:

//Datatype: fuelEfficiency = double, vehicleSizes = string 
    public IEnumerable<SelectListItem> getVehicleFuelEfficiency() 
    { 
     var size = new[] {new vehicleSize {fuelEfficiency = 0.0, vehicleSizes = "Choose your  vehicle size"}, 
     //and so on        
         }; 
     return size.Select(a => new SelectListItem() { Text = a.vehicleSizes, Value = a.fuelEfficiency.ToString() }); 
    } 

Вид:

@Html.DropDownListFor(model => model.GreenCalculator.vehicleList[i].fuelEfficiency, (IEnumerable<SelectListItem>)ViewBag.vehicleSizes) 
+0

, пожалуйста, разместите соответствующий код – Rafay

ответ

0

Вы можете Получать IDictionary на контроллере. Имя Dropdownlist должно совпадать с именем словаря.

0

Ваш код выглядит хорошо. Он будет генерировать выпадающий список из заданных значений. Но он не будет предварительно выбирать параметр по умолчанию. Это потому, что в первом аргументе вы использовали сложное выражение. Если вы хотите предварительно выбрать какой-либо элемент, вы можете сделать это:

@Html.DropDownListFor(
    x => x.GreenCalculator.vehicleList[i].fuelEfficiency, 
    new SelectList(
     (IEnumerable<SelectListItem>)ViewBag.vehicleSizes, 
     "Value", 
     "Text", 
     Model.GreenCalculator.vehicleList[i].fuelEfficiency 
    ) 
) 
Смежные вопросы