Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 2 ASP.NET MVC站点地图_Asp.net Mvc 2_Mvcsitemapprovider - Fatal编程技术网

Asp.net mvc 2 ASP.NET MVC站点地图

Asp.net mvc 2 ASP.NET MVC站点地图,asp.net-mvc-2,mvcsitemapprovider,Asp.net Mvc 2,Mvcsitemapprovider,我一直在疯狂地试图弄明白为什么我不能让ASP.NET MVCSiteMap工作 我已从CodePlex(2.3版)下载了最新版本,并设置了上概述的参考。我下载了DisplayTemplates并设置了一个基本的Mvc.sitemap文件: <?xml version="1.0" encoding="utf-8" ?> <mvcSiteMap xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-2.0" en

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

我已从CodePlex(2.3版)下载了最新版本,并设置了上概述的参考。我下载了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>
我不知道我做错了什么。我没有收到任何错误,我正在使用CodePlex项目站点提供的Mvc.sitemap文件,并对我的操作/控制器进行了一些小的修改

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


非常感谢您的帮助。

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

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

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

(请注意结尾处的-3.0而不是-2.0,在最新版本中,结尾处的是-4.0)

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


请注意,项目已移动到名称空间,但仍在引用codeplex.com。

我遇到了相同的问题-节点数为0。我找到了解决问题的办法,希望对你有帮助

在App_Start->RouteConfig.cs中,我有:

routes.MapRoute("Robots.txt",
             "robots.txt",
             new { controller = "Home", action = "Robots" },
             namespaces: new string[] { "Mvc4AppNamespace.Controllers" });
我删除了
namespaces:newstring[]{“Mvc4AppNamespace.Controllers”}
并成功了。在我的例子中,问题在于名称空间

<%@ 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
routes.MapRoute("Robots.txt",
             "robots.txt",
             new { controller = "Home", action = "Robots" },
             namespaces: new string[] { "Mvc4AppNamespace.Controllers" });