Orchard CMS - 导航不再起作用

时间:2011-05-13 22:37:58

标签: asp.net asp.net-mvc asp.net-mvc-3 navigation orchardcms

我是Orchard CMS系统的新手。 http://www.orchardproject.net

我安装了1.0版,现在他们更新了,我安装了1.1.30版,但从未真正发布过。

我下载了导航功能“高级菜单 - 版本:1.2.1”,我看到了一些要使用的菜单项并试了一下。但我再也无法删除它们了

如果我禁用并启用我收到错误:

    In einen eindeutigen Index kann kein doppelter Wert eingefügt werden. 
[ Table name = Szmyd_Orchard_Modules_Menu_AdvancedMenuPartRecord,Constraint 
name = UQ__Szmyd_Orchard_Modules_Menu_AdvancedMenuPartRecord__0000000000000352 ]

但我可以看到带有高级子项的导航菜单。

我不知道菜单从哪里获取信息,但是某些项目如“Sprecher”在“高级菜单导航”中,但是当我点击删除时会出现错误:

404 - Datei oder Verzeichnis wurde nicht gefunden.

我已经尝试了几天没有成功的任何解决方案。请帮忙。

1 个答案:

答案 0 :(得分:2)

我设法找出问题的根源,两者都将在即将发布的版本中修复。我会在本周末尝试这样做。

第一期

不要担心在禁用和启用模块后遇到的错误 - 它只是一次并且不会影响模块使用(当然会修复)。

禁用模块不会删除任何底层数据库表 - 它只是告诉框架不要使用模块代码。默认菜单在启用步骤中创建,即使您禁用模块也会坐在那里。不幸的是,它没有检查菜单是否已经创建,因此每次启用模块时都会大声说“尝试在唯一索引中插入副本”(菜单名称是唯一的)。

第二期

您可以应用此修复程序以允许删除菜单。 转到 [Root] /Modules/Szmyd.Orchard.Modules.Menu/Views/MenuAdmin/Index.cshtml 并替换

@Html.ActionLink(T("Delete menu").Text, "Delete", "MenuAdmin", new { Area = "Szmyd.Orchard.Modules.Menu" }, new { @class = "button primaryAction" })

使用:

<a href="@Html.AntiForgeryTokenGetUrl(Url.Action("Delete", new { menuName = Model.MenuName }))" class="button primaryAction">@T("Delete menu") </a>

这将使删除链接正确呈现。

<强>更新

我忘了添加一些人报告删除操作无法使用名为'main'的菜单。我调查了这个问题并找到了问题的根源。

<强>第一

主菜单的问题在于,管理仪表板中的“主菜单”链接始终存在,无论您是否删除菜单。此链接由旧的默认Orchard导航系统添加,但高级菜单模块会覆盖它所指向的网址。

<强>第二

删除菜单后,不会删除相应的菜单项。项目的名称与相应的菜单相关联,因此如果删除“主”菜单,则在菜单本身被删除后,所有连接到“主”的项目仍然存在。这就是为什么在点击“主菜单”后你会突然看到所有菜单项,好像什么也没发生。 但是点击“删除菜单”会给你一个很好的404错误,因为菜单本身不存在。

我将尽快解决所有这些问题并发布修复程序。