asp.net - Orchard CMS - 导航不再工作

标签 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.

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

最佳答案

我设法找出了问题的根源,这两个问题都将在即将发布的版本中得到修复。我会尽量在本周末完成。

第一期

不要担心您在禁用和启用模块后遇到的错误 - 这是一次性的,不会影响模块的使用(当然会被修复)。

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

第二期

您可以应用此修复程序以允许删除菜单。 转到 [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 导航系统添加,但它指向的 url 被高级菜单模块覆盖。

第二

删除菜单后,对应的菜单项并没有被删除。项目通过其名称与相应的菜单相关联,因此如果删除“主”菜单,则在菜单本身被删除后,所有与“主”相关的项目仍然存在。这就是为什么在单击“主菜单”后,您会突然看到所有菜单项,就好像什么都没发生一样。 但是点击“删除菜单”会抛出一个很好的 404 错误,因为菜单本身不存在。

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

关于asp.net - Orchard CMS - 导航不再工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5998440/

相关文章:

c# - 当用户在文本框中按回车键时执行按钮单击事件

asp.net-mvc - 在 View 中格式化小数

c# - 外部身份验证不重定向到外部站点

asp.net-mvc-3 - Ninject 和 Entity Framework

sql - 无法删除数据库,因为它正在使用 + EF 代码优先

c# - 循环一周的日期,直到在该周内找到假期

c# - 如何在一页中使用两个表单?

asp.net - Azure AD B2C - ASP.NET Core 注册链接

c# - 如何在不同型号的 Controller 之间共享代码?

asp.net-mvc-3 - 在代码MVC Razor中渲染部分 View