asp.net-mvc-2 - ASP.NET MVC 站点地图

标签 asp.net-mvc-2 mvcsitemapprovider

我一直在疯狂地试图弄清楚为什么我不能让 ASP.NET MVCSiteMap 工作。

我已经从 CodePlex(2.3 版)下载了最新版本,并按照 CodePlex 中的概述设置了引用。 .我下载了 DisplayTemplates 并设置了一个基本的 Mvc.sitemap 文件:

<?xml version="1.0" encoding="utf-8" ?>
<mvcSiteMap xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-2.0" enableLocalization="true">
    <mvcSiteMapNode title="Dashboard" controller="Admin" action="Index" changeFrequency="Always" updatePriority="Normal">
        <mvcSiteMapNode title="Users" controller="Users" action="Index" />
        <mvcSiteMapNode title="Reports" controller="Reports" action="Index" />
    </mvcSiteMapNode>
</mvcSiteMap>

使用 HTML Helper 生成基本菜单时,我得到一个空白输出:
<%: Html.MvcSiteMap().Menu() %>

在 MenuHelperModel.ascx DisplayTemplate 中,我输出节点数:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl`1[ [MvcSiteMapProvider.Web.Html.Models.MenuHelperModel,MvcSiteMapProvider] ]" %>
<%@ Import Namespace="System.Web.Mvc.Html" %>
<%@ Import Namespace="MvcSiteMapProvider.Web.Html.Models" %>

<%: Model.Nodes.Count %>

<ul>
<% foreach (var node in Model.Nodes) { %>
    <li><%=Html.DisplayFor(m => node)%>
    <% if (node.Children.Any()) { %>
        <%=Html.DisplayFor(m => node.Children)%>
    <% } %>
    </li>
<% } %>
</ul>

结果输出是:
0

我无法弄清楚我做错了什么。我没有收到任何错误,我正在使用 CodePlex 项目站点提供的 Mvc.sitemap 文件,并对我的操作/ Controller 进行了一些小的修改。

注意:我还下载了示例项目,但它不会为我编译,并且正在使用的站点地图文件太复杂,我无法在我理解如何使用它的早期阶段弄清楚。

任何帮助是极大的赞赏。

最佳答案

2.3 版本已准备好用于 MVC3。我重新编译了新的源代码,添加了对 MVC2 程序集的引用,更改了两行代码,直到我有一个可以工作的 MvcSitemap.dll

在您的 Mvc.sitemap 中,我必须将命名空间更改为:

http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-3.0



(注意最后是-3.0而不是-2.0,在最新版本中是-4.0)

并确保 Controller 的名称与您测试它的 Controller 匹配,否则安全机制将阻止任何显示。

请注意,该项目已移至 Github命名空间仍在引用 codeplex.com。

关于asp.net-mvc-2 - ASP.NET MVC 站点地图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4662560/

相关文章:

带有 HTTP304 状态代码的 ASP.NET MVC2 浏览器缓存

json - 如何在我的 ASP.NET MVC 2 应用程序中启用 JSON 调用?

twitter-bootstrap-3 - MVCSiteMapProvider MVC 5 与 Bootstrap 3.2

c# - 如何更有效地使用 SiteMap?

asp.net-mvc-2 - ASP.NET MVC 2 - 请求编码问题

c# - ASP.NET MVC : removing item from a list in a nested structure always removes the last item 中的异常行为

c# - 将空字符串绑定(bind)到 Guid.Empty 或避免模型状态错误

asp.net - 没有 Controller 的 MvcSiteMapNode

c# - MvcSiteMapProvider 中各个项目的可见性?

c# - MVC SiteMap 从 menuhelper 中隐藏一个节点,但在 sitepathhelper 中显示(面包屑)