C# ASP.NET MVC通用导航

C# ASP.NET MVC通用导航,c#,asp.net,C#,Asp.net,我正在寻找为我的ASP.NET MVC应用程序开发通用导航的方法 为此,我创建了两个表: 类别:Id、名称、描述 CategoryTable:Id,Category[表类别外部],ParentCategory[表类别外部] 我将使用我的助手表CategoryTable,因为像action这样的一个类别可以有两个父类别,比如Xbox oder PlayStation 第一个问题:这是正确的方法吗 第二个问题:我不知道如何循环我的表以便构建导航。 每个人都知道,我可以在哪里导航的例子或东西,将帮助我

我正在寻找为我的ASP.NET MVC应用程序开发通用导航的方法

为此,我创建了两个表:

类别:Id、名称、描述

CategoryTable:Id,Category[表类别外部],ParentCategory[表类别外部]

我将使用我的助手表CategoryTable,因为像action这样的一个类别可以有两个父类别,比如Xbox oder PlayStation

第一个问题:这是正确的方法吗

第二个问题:我不知道如何循环我的表以便构建导航。 每个人都知道,我可以在哪里导航的例子或东西,将帮助我


致以最诚挚的问候

我认为您只能使用一个表来满足您的需求

在没有父项的情况下,ParnetId将具有null值

Categories: Id, Name, Description,ParentId (Foreign key on same table)

只需要两张桌子:

类别 身份证 名称 描述

分类链接 身份证 类别上的类别ID ParentCategoryId在类别上是外来的,此类别允许为空

然后您可以使用递归检索所有类别

最好不要将其放在存储过程中,然后可以在实体框架中使用以下方法调用它:

context.ExecuteSqlCommand("EXEC getNavigation");

我有机会在生产中看到的唯一解决方案是使用标签,因为这种树的叶子不止一个父亲。您可以在“Action”中添加一列,该列可以包含此假期所属的所有父亲的标签列表。这样,一个操作将有一个父操作,但将通过标记连接到其他多个父操作。

你说的泛型nav是什么意思。你指的是实体框架吗?否,我使用ADO.NET和SQLClient,但用ninject封装。我的对象通过ICollection接口返回,因此我可以使用LINQ。一般来说,我的意思是,它不是硬编码的类别,我想在网站上显示。正确的方式与否-这取决于您的要求。如果您需要显示一些树状结构,那么它可能是正确的,但最好使用谷歌搜索有关存储和检索树状结构的信息。但在这种情况下,您不能有一个没有重复类别标签的类别:-但在您的情况下,如果没有重复的类别标签,您不能拥有一个类别:-感谢您提供的常用表格表达式提示,我将在家里工作后尝试它-你能帮我建立CTE的查询吗?:-/对于我的SQL知识来说有点复杂。。。如果我放弃了第二个表的想法,创建了一个带有ParentId列的表,并且有多个Action categorie作为child,会怎么样。。我仍然有机会展示所有产品的类别行动?非常感谢。谢谢你的提示!我会想一想:-我问自己其他网站如何处理这个问题。我想我不是唯一一个会得到这个解决方案的人?!