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?
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:
<system.web>
<pages>
<namespaces>
<add namespace="MyProject.Extensions" />
</namespaces>
</pages>
</system.web>
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:
<%@ Import namespace="MyProject.Extensions" %>
RAZOR:
@using MyProject.Extensions
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
.