2011-01-11 13 views
5

मैं यह पता लगाने की कोशिश कर रहा हूं कि मुझे एएसपी.नेट एमवीसीसाइटमैप को काम करने के लिए क्यों नहीं मिल रहा है।एएसपी.नेट एमवीसी साइटमैप

मैंने कोडप्लेक्स (संस्करण 2.3) से नवीनतम संस्करण डाउनलोड किया है और CodePlex पर उल्लिखित संदर्भों को सेट किया है। मैं DisplayTemplates डाउनलोड किया है और एक बुनियादी Mvc.sitemap फ़ाइल सेट:

<%: Html.MvcSiteMap().Menu() %> 

MenuHelperModel.ascx में:

<?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, मैं नोड्स की संख्या outputting हूँ

मैं यह नहीं समझ सकता कि मैं क्या गलत कर रहा हूं। मुझे कोई त्रुटि नहीं मिलती है, और मैं कोडप्लेक्स प्रोजेक्ट साइट द्वारा प्रदान की गई एमवीसी साइटमैप फ़ाइल का उपयोग कर रहा हूं जिसमें मेरे कार्यों/नियंत्रकों के लिए कुछ मामूली संशोधन हैं।

नोट: मैंने नमूना प्रोजेक्ट भी डाउनलोड किया है, लेकिन यह मेरे लिए संकलित नहीं होगा और साइटमैप फ़ाइल का उपयोग किया जा रहा है, इस बारे में मेरी समझ में यह समझने के लिए मेरे शुरुआती चरण में पता लगाने के लिए मेरे लिए बहुत जटिल है।

किसी भी मदद की बहुत सराहना की जाती है।

उत्तर

1

2.3 संस्करण एमवीसी 3 के लिए तैयार है। मैं ताजा स्रोत कंपाइल,, MVC2 विधानसभाओं के लिए एक संदर्भ जोड़ने के दो कोड लाइनों को बदलने जब तक मैं एक काम MvcSitemap.dll

था अपने Mvc.sitemap में था मैं करने के लिए नाम स्थान बदलना पड़ा:

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

(-2,0 के बजाय अंत में -3.0 ध्यान दें, नवीनतम संस्करण में यह अंत में -4.0 है)

और यकीन है कि नियंत्रक के नाम तुम कहाँ का परीक्षण एक नियंत्रक से मेल खाता है अन्यथा यह सुरक्षा तंत्र कुछ भी दिखाना बंद कर देगा।

कृपया ध्यान दें कि परियोजना Github पर ले जाया गया है नामस्थान अभी भी codeplex.com का संदर्भ दे रहा है।

0

मुझे एक ही समस्या थी - नोड्स गिनती 0. मुझे अपनी समस्या का समाधान मिला, मुझे उम्मीद है कि यह आपकी मदद करेगा।

App_Start में -> RouteConfig.cs मैं था:

routes.MapRoute("Robots.txt", 
      "robots.txt", 
      new { controller = "Home", action = "Robots" }, 
      namespaces: new string[] { "Mvc4AppNamespace.Controllers" }); 

मैं namespaces: new string[] { "Mvc4AppNamespace.Controllers" } हटा दिया है और यह काम किया। मेरे मामले में समस्या नामस्थान के साथ थी।

संबंधित मुद्दे