मैं एक आंशिक कार्रवाई से सीधे लेआउट के लिए एक मेनू प्रतिपादन कर रहा हूँ, का उपयोग करने में "एरिया =?":T4MVC @ Url.Action (MVC.Controller.Action()) रेंडर पैरामीटर QueryString
@Html.Action(MVC.Menu.Index())
यह कार्रवाई, निर्धारित करता है कि कौन सा मेनू प्रस्तुत करने के लिए आंशिक है। उदाहरण के लिए, एक सार्वजनिक मेनू आंशिक। इन partials के भीतर, मैं भी T4MVC उपयोग कर रहा हूँ लिंक रेंडर करने के लिए:
<ul id="navHolder">
<li class="level1">
<ul class="mainMenu">
<li><b>@Html.ActionLink("Welcome", MVC.Home.Index())</b>
...
किसी कारण से, Urls T4MVC द्वारा प्रदान की गई शामिल हैं "क्षेत्र =?" अंत में:
<ul id="navHolder">
<li class="level1">
<ul class="mainMenu">
<li><b><a href="/home/index?Area=">Welcome</a></b>
...
मेरे पास है नहीं मेरे प्रोजेक्ट के क्षेत्र और मैंने "IncludeAreasToken" सेटिंग को गलत पर बदल दिया है। विचित्र रूप से, यह केवल तभी होता है जब मैं "@ Html.Action" का उपयोग करके आंशिक रूप से प्रस्तुत करता हूं - यदि मैं इसे "@ HTML.Partial" के रूप में खींचता हूं तो पैरामीटर प्रदान नहीं किया जाता है और लिंक साफ़ और सही है। (मैं हालांकि एक आंशिक रूप में यह रेंडर करने के लिए नहीं करना चाहते हैं, ताकि नहीं करते हैं तो कृपया एक सुझाव के रूप,;)
किसी को भी वहाँ बाहर इस में पहले ही आ जाते?
धन्यवाद - इससे मदद मिली। –
मैंने अभी यह देखने के लिए एक चेक जोड़ा है कि क्या क्षेत्र प्रदान किया गया था, यदि ऐसा है तो मैं इसे शब्दकोश में जोड़ता हूं: 'if (! String.IsNullOrWhiteSpace (क्षेत्र)) {result.RouteValueDictionary.Add ("Area", area ?? "");} ' –
@BradR: इस परिवर्तन के साथ समस्या यह है कि मुझे लगता है कि यह हमेशा सही नहीं होता है। जब आप किसी क्षेत्र दृश्य में हों और आप शीर्ष स्तर (गैर-क्षेत्र) दृश्य के लिए एक लिंक उत्पन्न करने का प्रयास कर रहे हैं, तो खाली क्षेत्र को पार करना वर्तमान क्षेत्र से बचने के लिए सही चीज है। लेकिन आपकी जांच के साथ ऐसा नहीं होगा। –