System.Web.Mvc.HtmlHelper' tidak mengandung definisi untuk 'ActionLink'

Saya ingin menggunakan @Html.ActionLink khusus

Saya mencoba menggunakan kode berikut: -

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);
    }
}

Dari https://stackoverflow.com/questions/5084635/custom-actionlink-helper-that-knows-what-page-youre-on

Tapi saya mendapatkan

System.Web.Mvc.HtmlHelper' tidak mengandung definisi untuk 'ActionLink' dan tidak ada metode ekstensi 'ActionLink' yang menerima argumen pertama pertama dari tipe 'System.Web.Mvc.HtmlHelper' dapat ditemukan (apakah Anda Anda kehilangan petunjuk penggunaan atau referensi assembly?

Larutan

Tambahkan ini menggunakan System.Web.Mvc.Html; di atas file Anda

Komentar (0)

Pastikan namespace untuk kelas ekstensi Anda disertakan dalam web.config Anda. Sebagai contoh:

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

Di situs Anda Web.config dan/atau Web.config yang terletak di folder "Views" Anda:







Jika tidak, sertakan blok "using" untuk namespace di bagian atas halaman tampilan Anda dapat bekerja tetapi untuk namespace umum saya akan melakukan hal di atas.

ASPX:

RAZOR:

@using MyProject.Extensions
Komentar (1)

Pastikan bahwa Anda memiliki penggunaan berikut dalam file kelas Anda:

using System.Web.Mvc.Html;

Ini diperlukan karena kelas HtmlHelper terletak di namespace System.Web.Mvc tetapi metode ekstensi ActionLink terletak di namespace System.Web.Mvc.Html.

Komentar (2)