2012-02-01 3 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() }); 
    } 

보기 : 당신은 컨트롤러에 IDictionary를받을 수 있습니다

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

일부 관련 코드를 게시하십시오. – Rafay

답변

0

. 드롭 다운 목록 이름은 사전 이름과 일치해야합니다.

0

코드가 정상적으로 보입니다. 주어진 값에서 드롭 다운 목록을 생성합니다. 그러나 기본 옵션을 미리 선택하지는 않습니다. 첫 번째 인수에서 복잡한 표현식을 사용했기 때문입니다. 일부 항목을 미리 선택하려면 다음을 수행하십시오.

@Html.DropDownListFor(
    x => x.GreenCalculator.vehicleList[i].fuelEfficiency, 
    new SelectList(
     (IEnumerable<SelectListItem>)ViewBag.vehicleSizes, 
     "Value", 
     "Text", 
     Model.GreenCalculator.vehicleList[i].fuelEfficiency 
    ) 
) 
관련 문제