ASP.NET MVCSiteMap을 사용할 수없는 이유를 알아 내려고 제 정신이 들었습니다.ASP.NET MVC SiteMap
CodePlex (버전 2.3)에서 최신 버전을 다운로드하고 CodePlex에 설명 된 참조를 설정했습니다. 나는 DisplayTemplates를 다운로드 및 기본 Mvc.sitemap 파일을 설정하십시오 MenuHelperModel.ascx에서
<%: Html.MvcSiteMap().Menu() %>
:
<?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 도우미를 사용하여
, 나는 빈 출력을 얻을를<%@ 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>
결과 출력은 다음과 같습니다 :
DisplayTemplate, 나는 노드의 수를 출력하고내가 뭘 잘못하고 있는지 알 수 없습니다. 오류가 발생하지 않으며 CodePlex 프로젝트 사이트에서 제공하는 Mvc.sitemap 파일을 사용하여 작업/컨트롤러에 약간의 수정을 가하고 있습니다.
참고 : 샘플 프로젝트를 다운로드했지만 나에게 컴파일되지 않으며 사용되는 사이트 맵 파일이이 초기 단계에서 이것을 사용하는 방법을 이해하는 데 너무 복잡하다는 단점이 있습니다.
도움을 주시면 대단히 감사하겠습니다.