我一直瘋了,試圖找出爲什麼我不能讓ASP.NET MVCSiteMap工作。ASP.NET MVC SiteMap
我已經從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輔助生成一個基本的菜單,我得到了一個空白輸出:
<%: 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文件,並對我的操作/控制器進行了一些小修改。
注意:我也下載了示例項目,但它不會爲我編譯,並且正在使用的站點地圖文件對我來說太複雜了,無法在我理解如何使用它的早期階段弄清楚。
任何幫助,非常感謝。