asp.net mvc 3 System.Web.Mvc.HtmlHelper 'में' एक्शनलिंक 'की परिभाषा नहीं है




asp.net-mvc-3 asp.net-mvc-4 (4)

मैं कस्टम @ एचटीएमएल.एक्शनलिंक का उपयोग करना चाहता हूं

मैं निम्नलिखित कोड का उपयोग करने की कोशिश कर रहा हूं: -

public static class LinkExtensions
{
    public static MvcHtmlString MyActionLink(
        this HtmlHelper htmlHelper, 
        string linkText, 
        string action, 
        string controller)
    {
        var currentAction = htmlHelper.ViewContext.RouteData.GetRequiredString("action");
        var currentController = mlHelper.ViewContext.RouteData.GetRequiredString("controller");

        if (action == currentAction && controller == currentController)
        {
          var anchor = new TagBuilder("a");
          anchor.Attributes["href"] = "#";
          anchor.AddCssClass("currentPageCSS");
          anchor.SetInnerText(linkText);
          return MvcHtmlString.Create(anchor.ToString());
         }

         return htmlHelper.ActionLink(linkText, action, controller);
    }
}

कस्टम एक्शनलिंक सहायक से जो जानता है कि आप किस पृष्ठ पर हैं

लेकिन मुझे मिल रहा है

System.Web.Mvc.HtmlHelper 'में' एक्शनलिंक 'की परिभाषा नहीं है और' System.Web.Mvc.HtmlHelper 'प्रकार के पहले तर्क को स्वीकार करने वाली कोई एक्सटेंशन विधि' एक्शनलिंक 'नहीं मिल सकती है (क्या आप एक निर्देश का उपयोग कर रहे हैं या एक असेंबली संदर्भ?


सुनिश्चित करें कि आप अपनी कक्षा फ़ाइल में उपयोग कर रहे हैं:

using System.Web.Mvc.Html;

इसकी आवश्यकता है क्योंकि HtmlHelper क्लास System.Web.Mvc नेमस्पेस में स्थित है लेकिन ActionLink एक्सटेंशन विधि System.Web.Mvc.Html नामस्थान में स्थित है।


यदि आपका उपयोग नॉपकॉमर्स आपकी दृश्य फ़ाइल के शीर्ष पर इस कथन का उपयोग करके जोड़ता है।

@using Nop.Web.Framework.UI

using System.Web.Mvc.Html; इसे जोड़ें using System.Web.Mvc.Html; आपकी फाइल के शीर्ष पर


सुनिश्चित करें कि आपके पास अपने web.config में शामिल एक्सटेंशन एक्सटेंशन के लिए नेमस्पेस है। उदाहरण के लिए:

namespace MyProject.Extensions
{
    public static class LinkExtensions
    {
        //code
    }
}

आपकी साइट में Web.config और / या Web.config आपके "दृश्य" फ़ोल्डर में स्थित है:

  <system.web>
    <pages>
      <namespaces>
        <add namespace="MyProject.Extensions" />
      </namespaces>
    </pages>
  </system.web>

अन्यथा आपके व्यू पेज के शीर्ष पर नामस्थान के लिए "उपयोग" ब्लॉक शामिल हो सकता है लेकिन सामान्य नामस्थानों के लिए मैं उपरोक्त करता हूं।

ASPX:

<%@ Import namespace="MyProject.Extensions" %>

उस्तरा:

@using MyProject.Extensions




html.actionlink