2009-12-28 3 views
0

저는 MVC 프로그래밍의 새 버전입니다. 다른 db 테이블의 값을 내 편집에 전달하고 일부 드롭 다운리스트를 채우는보기를 만듭니다. 잘 작동합니다. 내 컨트롤러에서 다음과 같은 코드를 편집하고 만들 수 있습니다.MVC 뷰의 드롭 다운 목록에 값을 전달합니다.

var db = new MyProgramDataContext(); 주문 주문 = orderRepository.GetOrder (id); 을 ViewData [ "고객"] =에서 db.customers에 c를 새로운 SelectListItem { 텍스트 = c.customer_name, 값 = c.customer_name } 반환보기 (순서)를 선택 ;

select 문을 Respository로 이동하여 편집 및 만들기에서 동일한 선택을 반복하지 않도록 작업을 조금 더 깔끔하게 만듭니다.

ViewData [ "customer"] = orderRepository.GetCustomers();

리포지토리에서 GetCustomers의 반환 형식을 SelectListItem으로 설정해야합니까? 나는 그것이 작동하도록 할 수 없습니다. 롭 Conery는 자신의 블로그에 그것을 구현 한 방법

+0

이 MVC 프로그래밍을 수행하는 프레임 워크와 언어로이 태그를 지정해야합니다. MVC는 많은 시간에 훌륭한 방식으로 구현 된 패턴입니다. –

+0

흠, 나는 그것이 첫 번째 태그라고 생각했지만 거기에 없었습니다 ... 죄송합니다! – RememberME

답변

0

당신의 함수를 작성 DDLHelper

<select id="idXYZ" name="XYZ"> 
    <%= DDLHelper.DDl_order(Model.orderId)%> 
</select> 

같은 몇 가지 헬퍼 클래스에이 방법에 기능

이동과 같은 종류의 시도 내 FormViewModel 클래스의 SelectLists는 편집 및 코드 작성을 위해 부분 뷰를 사용합니다. 모두에게 감사드립니다.

1

체크 아웃 : 당신은 모든 고객을 얻고, 다음 selectList의를 만들고 그에 따라을 ViewData를 설정할 수 있습니다

http://blog.wekeroad.com/blog/asp-net-mvc-dropdownlist-and-html-attributes/

.

+0

이제 Respository의 데이터를 IQueryable로 반환하고 컨트롤러에서 다음을 수행합니다. ViewData [ "customer"] = new SelectList (orderRespository.GetCustomers(), "customer_name", "customer_name", order.customer); 그게 효과가 있습니다. 그게 최선의 방법일까요? – RememberME

+0

작동하는 경우 계속 사용하십시오. 앞으로도 언제든지이 코드로 되돌아 갈 수 있습니다. –

0

지금이 DDLHelper

같은 헬퍼 클래스에
public static string DDl_order(int orderId) 
     { 
      string format = "<option value=\"{0}\" {2} >{1}</option>"; 
      System.Text.StringBuilder sb = new System.Text.StringBuilder(); 
      sb.AppendFormat(format, "", "--Select--", ""); 

      List<Models.UrClass> urclass=orderRepository.GetCustomers(); 

      foreach (var item in client) 
      { 
       string ordid = item.orderId.ToString().Encrypt(); 

       if (item.ClientID == orderId) 
        sb.AppendFormat(format, orderid , item.OrdName,selected=\"selected\""); 
       else 
        sb.AppendFormat(format, ordid , item.OrdName, ""); 
      } 
      return sb.ToString(); 
     } 
관련 문제