[Asp.net-Mvc] Asp.NET MVC में हाइलाइट के साथ नेविगेशन मेनू?



Answers

इस उद्देश्य के लिए, मैंने कुछ कोड लिखे हैं, कुछ अंश हैं जो कि मेरी कस्टम एक्सटेंशन जैसे भाषा, आगे बढ़ो और उसका उपयोग करें, बस छोटे भाग को अनदेखा करें

यह एक मैं अपने आंशिक के शीर्ष पर रखता हूं जिसमें मेनू को क्रिया और नियंत्रक प्राप्त करने के लिए होता है, जिससे कि मैं इसे एक्सटेंशन पर पास कर सकूं।

<%  string currentAction = ViewContext.RouteData.Values["action"].ToString();
    string currentController = ViewContext.RouteData.Values["controller"].ToString(); %>

यह साइडबार वस्तु है, मूल रूप से यह संकेत करने के लिए कि लिंक वर्तमान पृष्ठ / हाइलाइट में उपयोग किया जाता है, लिंक और आपके कस्टम वर्ग के साथ एक "ली" टैग उत्पन्न करेगा।

public static string SidebarItem(this System.Web.Mvc.HtmlHelper html, string currentAction, string currentController, string action, string controller, string languageKey, params object[] args)
{
    TagBuilder tb = new TagBuilder("li");
    if (string.Equals(currentAction, action, StringComparison.OrdinalIgnoreCase) && string.Equals(currentController, controller, StringComparison.OrdinalIgnoreCase))
    {
        tb.GenerateId("activemenu");
    }
    string text = html.Language(languageKey, args);
    string link = html.ActionLink(text, action, controller).ToHtmlString();
    tb.SetInnerText("{0}");
    return String.Format(tb.ToString(), "<span>"+link+"</span>");
}

और यहाँ ऊपर कोड का वास्तविक उपयोग है

<%= Html.SidebarItem(currentAction, currentController, "index", "home", "index") %>
Question

यह एक सरल सवाल है कैसे स्टाकवर्फफ्लो अपने मेनू में asp.net MVC में किया, हम किस पृष्ठ पर हैं पर प्रकाश डाला




यानी इस यूआरएल के लिए देखें

http://.com/questions यह इंगित करता है कि शायद प्रश्न नियंत्रक इस पृष्ठ को संभालता है। इसलिए हाइलाइट किए गए मेनू आइटम को प्रदर्शित करने के लिए यह दृश्य बदलता है




मेनू बनाने के लिए आप एक HTML हेल्पर का उपयोग कर सकते हैं इस तरह सभी कोड एक ही स्थान पर है।

साइटमैप HtmlHelper ASP.NET MVC में एक घटक के बारे में कुछ जानकारी है जो उपलब्ध है।




Links