我想使用自定义@ 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);
}
}
来自Custom ActionLink helper that knows what page you're on
但我得到了
System.Web.Mvc.HtmlHelper'不包含的定义 'ActionLink'并没有扩展方法'ActionLink'接受第一个 可以找到'System.Web.Mvc.HtmlHelper'类型的参数(是吗? 缺少using指令或程序集引用?
答案 0 :(得分:47)
在您的文件顶部添加此using System.Web.Mvc.Html;
答案 1 :(得分:16)
确保您的web.config中包含扩展类的命名空间。例如:
namespace MyProject.Extensions
{
public static class LinkExtensions
{
//code
}
}
位于“Views”文件夹中的站点Web.config和/或Web.config中:
<system.web>
<pages>
<namespaces>
<add namespace="MyProject.Extensions" />
</namespaces>
</pages>
</system.web>
否则,在视图页面顶部包含命名空间的“using”块可以正常工作,但对于常见的命名空间,我会这样做。
ASPX:
<%@ Import namespace="MyProject.Extensions" %>
RAZOR:
@using MyProject.Extensions
答案 2 :(得分:5)
确保您在课程文件中使用以下内容:
using System.Web.Mvc.Html;
这是必需的,因为HtmlHelper
类位于System.Web.Mvc
命名空间中,但ActionLink
扩展方法位于System.Web.Mvc.Html
命名空间中。
答案 3 :(得分:2)
如果您使用nopcommerce在视图文件的顶部添加此using语句。
>>> print image_date
[[[ 18 23 16]
[ 31 32 24]
[ 34 29 23]
...,
[ 97 73 49]
[ 95 73 50]
[ 94 72 49]]
[[ 23 24 18]
[ 30 30 22]
[ 36 29 21]
...,
[ 98 74 50]
[ 95 73 50]
[ 95 73 50]]
[[ 32 27 21]
[ 34 29 23]
[ 37 28 21]
...,
[ 94 72 48]
[ 97 72 50]
[ 97 72 50]]
...,
[[ 43 35 24]
[ 46 36 26]
[ 48 36 24]
...,
[ 47 31 18]
[ 47 31 18]
[ 47 30 20]]
[[ 59 56 47]
[ 59 55 46]
[ 59 50 41]
...,
[ 49 33 20]
[ 48 32 19]
[ 48 32 19]]
[[114 115 107]
[104 104 96]
[100 93 85]
...,
[ 48 32 19]
[ 48 32 19]
[ 47 31 18]]]
答案 4 :(得分:0)
我的问题是,在视图中语法“ @ Html.actionLink”不完整。看来我已经开始添加操作链接并朝不同的方向前进,但是忘记删除部分操作链接,这导致了与上述相同的错误。...因此,请检查语法,因为这将引发相同的运行时错误。祝你好运!
答案 5 :(得分:0)
不要忘记第一个参数仅接受字符串。如果不是,它将显示此错误。