/ / XML को mvc.SiteMap में ग्लोबल नोड में मार्गों पर बाँधने में परेशानी हो रही है? - asp.net-mvc, mvcsitemapprovider, mvcsitemap, asp.net-mvc-sitemap

Global.asa में मार्गों पर mvc.SiteMap में XML नोड को बाध्य करने में समस्या आ रही है? - asp.net-mvc, mvcsitemapprovider, mvcsitemap, asp.net-mvc-sitemap

मैं MVC3, C # 4, रेजर, MvcSiteMapProvider V4 का उपयोग कर रहा हूं।

मैं अपने Mvcc.iteMapNodes को अपने mvc.sitemap फ़ाइल में अपने वैश्विक रूप से मेरे मार्गों में स्पष्ट रूप से बाँधने का प्रयास कर रहा हूँ। लेकिन काम होता नहीं दिख रहा है। कोई शक नहीं कि मैंने कुछ छोड़ा है।

Global.asa में मेरे मार्ग:

  routes.MapRoute("Report", "Report/{ClientId}", new { controller = "Report", action = "Index", ClientId = UrlParameter.Optional });
routes.MapRoute("Report_Section", "Report/{ClientId}/Section/{ReportId}", new { controller = "Section", action = "FilterByReport", ReportId = UrlParameter.Optional });

मेरे mvc.sitemap का हिस्सा:

        <mvcSiteMapNode title="Reports" controller="Report" action="Index" preservedRouteParameters="ClientId" route="Report">
<mvcSiteMapNode title="Sections" route="Report_Section">

तो मेरे 2 URL हैं:

रिपोर्ट मार्ग:

Report/10

रिपोर्ट_सेक्शन रूट:

Report/10/Section/100

मुझे दूसरे पर पहचान नहीं मिल रही हैमार्ग, और इसलिए ब्रेडक्रंब निशान प्रासंगिक पृष्ठ पर दिखाई नहीं देता है। मैं mvc.sitemap में "मार्ग" विशेषता निर्दिष्ट करके उम्मीद कर रहा था, mvcSiteMapProvider दोनों को बांध देगा।

विचार। मैं कहाँ पर गलत हो गया?

बहुत धन्यवाद

संपादित करें:

ऐसा लगता है कि मुझे "mvc.sitemap" में "कंट्रोलर" और "एक्शन" को निर्दिष्ट करने की आवश्यकता है और "रूट" अपने आप काम नहीं करेगा।

         <mvcSiteMapNode title="Sections" controller="Section" action="FilterByReport"  route="Report_Section" preservedRouteParameters="ClientId,ReportId">

उत्तर:

उत्तर № 1 के लिए 1

रूट पैरामीटर मैच को संकीर्ण करने के लिए हैसभी मार्गों का मिलान करने के बजाय एक विशिष्ट मार्ग। हालांकि, रूट को निर्दिष्ट करने के लिए इसे मैच करने के लिए पर्याप्त नहीं है। आपको अपनी कार्रवाई, नियंत्रक, (वैकल्पिक) क्षेत्र, और (वैकल्पिक) कार्रवाई मापदंडों की आपूर्ति करने की आवश्यकता है।

इसके अलावा, इसे याद करने के लिए प्रकट होने के लिएब्रेडक्रम्ब ट्रेल, आपको अपने साइटमैप में प्रत्येक संभावित क्लाइंट / रिपोर्ट संयोजन के लिए एक नोड जोड़ने की आवश्यकता है। यह एक जोड़े का उपयोग करके आसानी से प्राप्त किया जा सकता है DynamicNodeProviders अपने डेटाबेस / डेटा स्रोत से अपना डेटा लोड करने के लिए। पूरा सिद्धांत मानचित्र के भीतर एक अद्वितीय स्थान से मेल खाने पर आधारित है, और आपको प्रत्येक मैच को अद्वितीय बनाने के लिए उन आईडी की आवश्यकता है

PreservedRouteParameters आमतौर पर उपयोग किया जाता हैCRUD ऑपरेशंस में किसी भी ID को एक एक्शन मेथड पैरामीटर से मिलाएं। यह आपको अपने ऐड / एडिट / डिलीट पेज बनाने की सुविधा देता है, जो किसी भी आईडी को साइटमैप में दर्ज किए बिना मेल खाता है।