2013-07-05 2 views
0

내 MVC 응용 프로그램에서 저장 프로 시저를 사용하여 데이터를 검색하고 드롭 다운에 표시하려고합니다. 여기 저장 프로 시저를 사용하여 Selectlist를 채우는 방법

여기 내 컨트롤러 액션

public ActionResult Register(string id) 
{ 
    RegistrationModel Student = new RegistrationModel(); 

     using (var db = new StudentEntities()) 
     { 
      var SportResultList = GetListOfSport(); 
      var SportSelectList = new SelectList(SportResultList); 
      ViewBag.SportList = SportSelectList; 

    return View(Student); 
} 

있는 저장 프로 시저

 public static List<GetSportsResult> GetListOfSport() 
       { 
     using (var db = new StudentEntities()) 
      { 
ObjectResult<GetSportsResult> SportResults = db.GetSportsByStudentIdAndSeason(11111, 1); 
List<GetSportsResult> results = SportResults.ToList(); 

      return results; 
      } 

     } 

저장 프로 시저가 GetSportsResults라는 복잡한 형식을 반환을 사용하여 목록을 얻을 수있는 방법이다하지만 지금은하지 않습니다 해당 필드에 액세스하는 방법.

현재이 코드는 필드는 텍스트와 값을 사용할 수 있습니다 지정할 수있는 내가 the constructor for SelectList에서

답변

3

을 받고해야 레코드의 권리 금액 인 GetSportsResults 20 시간을 표시합니다. 이것은 문자열 값을 생성자에 전달하여 수행됩니다. 당신의 GetSportsResult 객체 식별자로 .ID 부동산와 표시 값으로 .Name 재산이있는 경우

예를 들어, 다음 코드는 다음과 같습니다

var SportResultList = GetListOfSport(); 
var SportSelectList = new SelectList(SportResultList, "ID", "Name"); 
ViewBag.SportList = SportSelectList; 

이것은 SelectList 개체를 나타냅니다 그 GetSportsResult.ID은 목록의 각 항목에 대한 값이어야하며 GetSportsResult.Name은 목록의 각 항목에 대해 표시된 텍스트 여야합니다.

이 필드를 지정하지 않으면 현재 개체가 표시 할 항목을 "가장 추측합니다". 이 작업은 기본적으로 각 객체에 .ToString()을 호출하여 수행합니다. 기본이 아닌 유형 인 .ToString()의 기본 동작은 유형 자체의 이름을 표시하는 것이므로 각 항목에 대해 "GetSportsResult" 문자열이 표시됩니다.

+0

고마워요. 그 SelectList에 매개 변수를 추가했습니다. – meda

관련 문제