2012-02-01 38 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 
    ) 
) 
相关问题