gpt4 book ai didi

model-view-controller - MVCSiteMapProvider 不显示 SiteMapPath

转载 作者:行者123 更新时间:2023-12-02 00:00:06 24 4
gpt4 key购买 nike

我有一个简单的站点地图:

<mvcSiteMapNode title="Projects" controller="Projects" action="Index"> <!--This wraps the entire site since Projects Index is the homepage-->
<mvcSiteMapNode title="Projects" controller="Projects" action="Index">
<mvcSiteMapNode title="Project" controller="Projects" action="Details">
<mvcSiteMapNode title="Session" controller="Session" action="DetailsNew" />
<mvcSiteMapNode title="Edit Session" controller="Session" action="Edit" />
</mvcSiteMapNode>
</mvcSiteMapNode>
<mvcSiteMapNode title="My Account" controller="Account" action="ChangePassword" />
<mvcSiteMapNode title="Admin" controller="Admin" action="Index" >
<mvcSiteMapNode title="Create User" controller="Admin" action="AddUser" />
<mvcSiteMapNode title="Manage Users" controller="Admin" action="Users" />
</mvcSiteMapNode>
</mvcSiteMapNode>

当我将 @Html.MvcSiteMap().SiteMapPath() 放在我的项目详细信息页面上时,没有任何显示。想法?

最佳答案

当你添加一个自定义路由值(“area”、“controller”或“action”之外的值)时,你需要明确指定如何匹配它。

默认情况下,您应该为每个潜在的路由键值创建一个节点。例如,如果您有一个名为“id”的路由键,并且您有 ID 为“1”、“2”和“3”的记录,则需要为每个 ID 创建一个节点。

<mvcSiteMapNode title="Project 1" controller="Project" action="Details" id="1">
<mvcSiteMapNode title="Project 2" controller="Project" action="Details" id="2">
<mvcSiteMapNode title="Project 3" controller="Project" action="Details" id="3">

您已经发现了替代方案,即使用 preservedRouteParameters。这将使节点始终匹配路由键,而不管其值如何,这通常是执行 CRUD 操作的管理页面的理想解决方案。

<mvcSiteMapNode title="Edit Project" controller="Project" action="Edit" preservedRouteParameters="id">

通常当您这样做时,您必须稍微修正显示,因为在菜单上有一个编辑节点没有多大意义(您通常会从记录列表中选择编辑)并且当您选择它您通常希望节点显示您选择的记录。您可以使用 FilteredSiteMapNodeVisibilityProvider 执行此操作和 SiteMapTitleAttribute .

有关通常如何设置一组 CRUD 操作的完整可下载演示,请参阅标题为 How to Make MvcSiteMapProvider Remember a User's Position 的博客文章.

关于model-view-controller - MVCSiteMapProvider 不显示 SiteMapPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21913779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com