2013-03-22 5 views
0

진단 도구를 작성하려고하는데 목록에서 하나의 항목을 선택하고 다른 목록을 표시하고 다른 목록을 선택하는 등의 방법으로 진단 질문을 깊게 파 묻을 수 있습니다 필요에 따라, 예를 들면 :상위/하위 테이블을 사용하는 계층 적 탐색 경로

피크에서 :

Software - Microsoft - Outlook - How do I? 
           - Errors 
        - Word - How do I? 
           - Errors 
        - Excel - How do I? 
           - Errors 

     -Lotus 

Hardware -PC 
     -Laptop 

Network -Firewall 

이이 같은 테이블에 정의 된 것 :

id parent_id Title 
1 0   Software 
2 0   Hardware 
3 0   Network 
4 1   Microsoft 
5 1   Lotus 
6 4   Outlook 
7 4   Word 
8 4   Excel 
9 5   How do I? 
10 5   Errors 
...etc 

나는 MVCSiteMap에 대한 참조를 본 적이 - 내가 사용하는 웹 양식 난을 사이트 맵

Software > Microsoft > Excel > How do I? > Freeze panes 

내가 가진 테이블 모델은 다음과 같습니다 :

public class Forum 
{ 
    public int id { get; set; } 
    public int parent_id { get; set; } 
    public string Title { get; set; } 
    public string Description { get; set; } 
} 

내 컨트롤러의 코드는 다음과 같습니다

- NA 유사한 방법하지만이 빵 부스러기가에 대한 링크를 표시하도록 동적 할 필요가
 var bc = db.Fora.FirstOrDefault(i => i.id == id); 
     var cbh = new List<Forum>(); 
     if (bc != null) 
     { 
      var parent = bc.parent_id; 
      while (parent != null) 
      { 
       cbh.Insert(0, parent); 
       parent = parent.Parent; 
      } 
     } 

내가하려는 것은 게시판 목록을 작성하고 게시판을 생성 할 수있는 새로운 포럼 목록을 작성하는 것입니다. 어디 붙어지고있어하는 것은입니다 :

cbh.Insert(0, parent); 
parent = parent.Parent; 

나도 내 컨트롤러 코드는이 두 줄의 잘못, 또는 내 포럼 모델 에서 참조 계층 구조를 만들려면 ID를 PARENT_ID 필요가 있다고 생각 .

아무도 내 퍼즐의 마지막 조각을 완성 도와 드릴까요?

cbh 유형 포럼의 일반적인 목록 당신의 코드에서

마크

답변

1

감사하지만 cbh.Insert(0, parent);이, 당신이 할 일은 이상인 경우 int 형, 당신은 유형의 오류가 발생합니다 경우 parent이다 이렇게 :

var bc = db.Fora.FirstOrDefault(i => i.id == id); 
var cbh = new List<Forum>(); 
while (bc != null) 
{ 
    cbh.Insert(0, bc); 
    bc = db.Fora.FirstOrDefault(i => i.id == bc.parent_id); 
} 

행운을 빕니다.

관련 문제