以前曾经问过这个问题,但我会更准确地回答我的问题,希望能得到更好的答案:
我已经想出了如何向PageNames类添加视图:
public const string WorkOrders = "WorkOrders";
然后到projectNavigationProvider类将它们导入导航栏:
.AddItem(
new MenuItemDefinition(
PageNames.WorkOrders,
L("WorkOrders"),
url: "WorkOrders",
icon: "business",
requiredPermissionName: PermissionNames.Pages_WorkOrders
)
将主视图添加到主导航栏并正常工作。
但是,我还没想出如何创建一个全新的菜单以便在别处使用。在我正在开发的应用程序中,我们有几个页面显示特定表格中的所有记录,例如工作订单。但是每个表中的每个记录都应该有几个指向其他页面的链接,用于创建,编辑,详细信息和删除。
我的一个合作伙伴似乎通过使用对控制器端点的模态和ajax调用来解决其他页面上的这个问题。它适用于客户,只需要姓名和联系信息。但我不认为模式可用于创建,查看或编辑工作订单,因为它需要为每个工作订单添加订单项和相关数据他们等......这里有很多东西。最后,看起来似乎没有设置模板,因为他写了很多自己的j来让它工作。
目前,存在创建,编辑和详细信息视图,并且我在每条记录旁边都有链接,但是当我尝试使用该链接时出现错误。也许我不明白路由是如何工作的?在VS的普通mvc模板中,链接具有用于指定控制器和方法的属性,mvc处理其余部分。
<a asp-action="Edit" asp-route-id="@item.WorkOrderID">Edit</a> |
<a asp-action="Details" asp-route-id="@item.WorkOrderID">Details</a> |
<a asp-action="Delete" asp-route-id="@item.WorkOrderID">Delete</a>
我在尝试加载工作订单页面时遇到了同样的错误,但是没有将其添加到页面名称或navigationprovider,这使得我只需要添加指向navigationprovider类的链接但是我不想在主菜单上创建WordOrders创建页面的链接,我希望它在相应记录旁边的迷你菜单上。我已将页面添加到页面名称类,但我不确定如何为主页面创建单独的菜单。
public const string CreateWorkOrders = "CreateWorkOrders";
在查看navigationprovider类时,我看到:
context.Manager.MainMenu
我想我必须能够创建另一个菜单,并像这样添加项目:
context.Manager.NewMenu.AddItem(....
但看起来MainMenu在我无法找到或编辑的类中被引用。我应该创建另一个定义NewMenu的类,以便我能够在现有的navigationprovider类中配置它,还是应该为它创建一个单独的navigationprovider类?
希望我相信每个看过这个的人都会在寻求帮助之前做了大量的研究。即使链接到一些更详细的文档也会有所帮助。
答案 0 :(得分:0)
您可以添加如下新菜单:
context.Manager.Menus.Add(WorkOrders, new MenuDefinition(WorkOrders, L(WorkOrders)));
用法:
context.Manager.Menus[WorkOrders].AddItem(...)