私は診断ツールを構築しようとしているので、リストから 1 つの項目を選択すると、別のリストが表示され、別の項目を選択するというようになります。したがって、診断の質問を必要なだけ深く埋め込むことができます。たとえば、次のようになります。
から選びます:
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; }
}
私のコントローラーのコードは次のとおりです。
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;
この 2 行のコントローラー コードが間違っているか、フォーラム モデルで階層を作成するために、parent_idからidへの参照が必要であると思われます。
このパズルの最後のピースを完成させるのを手伝ってくれる人はいますか?
ありがとうございました、
マーク