2016-09-21 3 views
-1

MVC 4 응용 프로그램에 Dropdownlist을 표시하는 데 문제가 있습니다. 똑바로 보입니다. 그러나 아직 파악하지 못한 것이 있습니다. 나는 데이터베이스와 건물에서 레코드를 가져 오는하고 List<vendorTypeModel> 객체를 반환하고 어디MVC 4 문제 해결 DropDownListFor

뷰 모델

public class vendorModel 
{ 
    public int vendorID { get; set; } 
    public int vendorTypeID { get; set; } 
    public string vendorName { get; set; } 
    public IEnumerable<vendorTypeModel> vendorTypes { get; set; } 
} 

public class vendorTypeModel 
{ 
    public int vendorTypeID { get; set; } 
    public string vendorTypeName { get; set; } 
} 

컨트롤러

[HttpGet] 
    public ActionResult Vendor() { 
     vendorModel oVendor = new vendorModel(); 
     oVendor.vendorTypes = blVendor.getAllVendorTypes(); 
     return View(oVendor); 
    } 

getAllVendorTypes 방법 이입니다. 및 Finally on View는 다음 코드를 사용합니다.

@Html.DropDownListFor(m => m.vendorTypeID, new SelectList(Model.vendorTypes,"vendorTypeID","vendorTypeName")) 

내가 뭘 잘못하고 있니? 나는 결과를 화면에 표시하고있다. 대신 공급 업체의 이름

enter image description here

.

제 코드에 무슨 문제가 있습니까?

+2

그것은 당신의'getAllVendorTypes을 제안()'방식이 잘못하고 올바른 데이터를 반환하지 않습니다. –

+1

"return View (oVendor);"줄에 중단 점을 설정할 수 있습니까? 선이 실행되기 전에 vendorTypes를 확인하고 올바른 결과가 oVendor 객체의 vendorTypes로 있는지 확인하십시오. 당신이 관찰 한 것을 알려주십시오. 건배! –

답변

1

나는 oVendor.vendorTypes = blVendor.getAllVendorTypes();이 잘못된 목록을 되 돌리는 것으로 의심됩니다. 중단 점을 설정하고 oVendor.vendorTypes을 확인하십시오.

+0

예, getAllVendorTypes 메소드에 오류가 발생했습니다. –

0

https://stackoverflow.com/a/15195354/6741868에 따르면,이 같은 대안 구문을 시도 할 수 :

@Html.DropDownListFor(m => m.vendorTypeID, Model.vendorTypes.Select(vendor => new SelectListItem() 
{ 
    Text = vendor.vendorTypeName, 
    Value = vendor.vendorTypeID 
})