2011-01-25 3 views
0

Asp.net MVC2 : 내 MVC 응용 프로그램에 많은 드롭 다운리스트가 있습니다. 처음에는 고유 한 ID와 이름으로 각 테이블을 작성하고 컨트롤러와 뷰에서이를 참조했습니다. 응용 프로그램이 커지고 lookuptype 및 lookupvalue가 복합 기본 키로 포함 된 조회 테이블을 사용하고 해당 드롭 다운 목록의 모든 값을 채우는 것이 좋습니다. 나는 인터넷을 통해 모든 것을 보았습니다. mvc에 사용 된 유일한 방법은 각 드롭 다운 목록에 대한 하나의 테이블입니다! 누군가가 내게 그것을 어떻게 구현할 수 있는지 설명 할 수 있고, 자세하게 말해서 나는 완전히 잃어버린다. 튜토리얼에 대한 링크도 훌륭합니다. 저는 SQL에 vb.net과 linq를 사용하고 있습니다.MVC 프레임 워크에서 조회 테이블을 구현하는 방법은 무엇입니까?

+0

기존 테이블 중 하나에 기둥을 제공 할 수 있습니까? ID, 이름 및 가치 일 뿐인가? –

답변

0

실제로 약간 다른 접근 방식을 사용했습니다. LookupName 및 LookupValue와 합성 기본 키가있는 테이블을 만들었습니다. 그런 다음 datacontext에서 lookupname을 매개 변수로 사용하는 메서드를 선언 한 다음 lookupname이이 매개 변수와 일치하는 lookupvalues ​​목록을 가져옵니다. 원래 테이블 (ex.Contact)에서 status라는 필드를 만들었습니다. 여기서 선택한 값이 저장됩니다. 그런 다음 컨트롤러에서 뷰 데이터를 사용하여 드롭 다운 목록을 작성했습니다.

예 : _db는 데이터 컨텍스트를 =

을 ViewData ('상태')를 나타내는 새로운 selectList의 뷰 다음 (_db.Getlookupname ('상태') 'lookupname', 'lookupname')

html.dropdownlist ('상태')

또한 대상 테이블 '연락'에서 발견되는 것과 동일한 필드 이름 '상태'와 드롭 다운리스트의 이름.

복잡하고 오류없이 작동했습니다. 도움 주셔서 감사합니다. 그리고 이것이 다른 누군가에게 도움이되기를 바랍니다.

0

테이블에 ID, NameValue 열이 있다고 가정합니다. 이제이 표가 하나만있는 표를 보면 다음과 같이 보일 것입니다.

create table Lookup 
(
    LookupID int not null identity 
     primary key, 
    LookupTypeID int not null 
     references LookupType(LookupTypeID), 
    Name nvarchar(50) not null, 
    Value int not null, 
    unique(EnumTypeID, Name) 
) 
go 

이 표는 동일한 유형의 이름이 충돌하지 않도록합니다.

어쨌든. 당신은 물론 당신이 특정 유형의 값을 얻을 때마다 그래서 당신은 항상의 IList<EnumValue>를 생성 할 수 아래로 특정 드롭에 공급 유사한 응용 프로그램 (되지 않은 데이터) 모델 클래스

public class EnumValue 
{ 
    public int Id { get; set; } 

    [Required] 
    public string Name { get; set; } 

    [Required] 
    public int Value { get; set; } 
} 

있을 수 있습니다.

내부 작업에 따라이 표와 클래스에서 열/속성 Value을 생략 할 수 있으므로 귀중한 데이터를 제공하지 않으므로 전혀 필요하지 않을 수 있습니다. 그러나 당신은 당신이 당신의 신청 요구 조건을 알고 있기 때문에 이것을 가장 잘 알 것이다. 이 열/속성 대신 ID 만 사용하면됩니다.

+0

답장을 보내 주셔서 감사합니다. 이 문제는 어떻습니까?제발 좀 봐 주실 래요? 미리 감사드립니다 ... http://stackoverflow.com/questions/29333787/how-to-create-lookup-table-and-define-relationships –

관련 문제