를 사용하고 싶은 사용자 지정@Html.ActionLink
내가 사용하려고 다음과 같은 코드:-
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);
}
}
서 https://stackoverflow.com/questions/5084635/custom-actionlink-helper-that-knows-what-page-youre-on
그러나 나가
시스템입니다.웹.Mvc.HtmlHelper'을 포함하지 않습에 대한 정의 'ActionLink'그리고 연장 없음 방법'ActionLink'받아들이는 첫 번째 형식의 인수를'시스템입니다.웹.Mvc.HtmlHelper'찾을 수 있는(당신은 당신 누락 사용하는 지시어 또는 어셈블리 기준?
이 있는지 확인에 대한 네임스페이스를 확장 클래스에 포함되어 있다.config. 예를 들어:
namespace MyProject.Extensions
{
public static class LinkExtensions
{
//code
}
}
에서 당신의 웹 사이트.config 및/또는 웹.구성에 있"뷰"폴더:
<system.web>
<pages>
<namespaces>
<add namespace="MyProject.Extensions" />
</namespaces>
</pages>
</system.web>
그렇지 않으면을 포함"using"블록에 대한 네임스페이스의 맨 위에 보 페이지할 수 있는지에 대한 일반적인 네임스페이스의 것을 수행합니다.
ASPX:
<%@ Import namespace="MyProject.Extensions" %>
면도기:
@using MyProject.Extensions