В исходном примере , который я предоставил , я вызывал метод расширения непосредственно в Html:
<ul>
<li>@Html.MenuLink("Overview", "Index", "Statistics")</li>
<li>@Html.MenuLink("Detail View", "Detail", "Statistics")</li>
<li>@Html.MenuLink("Trends", "Trends", "Statistics")</li>
</ul>
Вы также можете вызывать метод напрямую, когда вы пытаетесь, но вы должны предоставить html помощник в качестве первого аргумента:
<ul>
<li>@HunterEdge.Web.Helper.HTMLHelper.MenuLink(Html, "Overview", "Index", "Statistics")</li>
<li>@HunterEdge.Web.Helper.HTMLHelper.MenuLink(Html, "Detail View", "Detail", "Statistics")</li>
<li>@HunterEdge.Web.Helper.HTMLHelper.MenuLink(Html, "Trends", "Trends", "Statistics")</li>
</ul>
, что, очевидно, крайне уродливо, и это не то, как методы расширения , которыми являются HTML-помощники, должны были работать.
Причина, по которой вы можете получить сообщение об ошибке, если вы используете первый синтаксис, заключается в том, что вы не добавили метод расширения в область видимости, поместив @using HunterEdge.Web.Helper
в верхней части представления или добавив это пространство имен в <namespaces>
сечение ~/Views/web.config
.