2009-01-17 8 views
7

मैं अपने साइटमास्टर (एचटीएमएल.एक्शनलिंक का उपयोग करके) में एक लिंक शामिल करना चाहता हूं, जो कि मैं जोड़ रहा हूं, वर्तमान दृश्य है। उदाहरण के लिए, जब उपयोगकर्ता पहले से ही "रजिस्टर" दृश्य देख रहा है तो "रजिस्टर" लिंक प्रदर्शित करने में कोई अर्थ नहीं है।रेल पर रूबी के एएसपी.नेट एमवीसी संस्करण "link_to_unless_current"

रेल पर रूबी में, मैं ऐसा करने के लिए "link_to_unless_current" विधि का उपयोग करता हूं।

मैं इस व्यवहार को एएसपी.नेट एमवीसी में कैसे डुप्लिकेट करूं? सबसे अच्छा मैं साथ आ सकता हूं कि मेरे नियंत्रक में एक बुलियन सेट करना है यह इंगित करने के लिए कि लिंक छुपाया जाना चाहिए (क्योंकि यह चालू है)। यह रेल दृष्टिकोण की तुलना में वास्तव में अजीब लगता है, इसलिए मुझे लगता है कि मुझे कुछ याद आना चाहिए।

उत्तर

10

मैं ASP.NET MVC में इस तरह के सहायक विधि के बारे में पता नहीं कर रहा हूँ, लेकिन यह रोल करने में बहुत आसान होना चाहिए अपनी खुद की:

public static class HtmlExtensions 
{ 
    public static string ActionLinkUnlessCurrent(this HtmlHelper htmlHelper, string linkText, string actionName) 
    { 
     string currentAction = htmlHelper.ViewContext.RouteData.Values["action"].ToString(); 
     if (actionName != currentAction) 
     { 
      return htmlHelper.ActionLink(linkText, actionName); 
     } 
     return linkText; 
    } 
} 

और फिर इस तरह इसका इस्तेमाल:

<%= Html.ActionLinkUnlessCurrent("Link Text", "Index") %> 
संबंधित मुद्दे