2012-02-01 44 views
1

我對MVC3非常陌生,並且開發了一個DropDownListFor,我需要爲顯示結果目的獲取值和文本。關於這個問題的任何想法?謝謝!如何通過Linq從選定值獲取DropDownList文本

在我的控制器:

 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 2012-02-01 05:36:32

回答

0

您可以在控制器收到IDictionary的。下拉列表名稱必須與字典的名稱相匹配。

0

你的代碼看起來不錯。它會根據給定的值生成下拉列表。但它不會預先選擇默認選項。這是因爲你在第一個參數中使用了一個複雜的表達式。如果你想預先選擇一些項目,你可以這樣做:

@Html.DropDownListFor(
    x => x.GreenCalculator.vehicleList[i].fuelEfficiency, 
    new SelectList(
     (IEnumerable<SelectListItem>)ViewBag.vehicleSizes, 
     "Value", 
     "Text", 
     Model.GreenCalculator.vehicleList[i].fuelEfficiency 
    ) 
) 
相關問題