Методы расширения должны быть объявлены в статическом классе:
public static class HtmlHelpers
{
public static string Truncate(
this HtmlHelper helper,
string input,
int length
)
{
if (input.Length <= length)
{
return input;
}
return input.Substring(0, length) + "...";
}
}
и затем, по вашему мнению, убедитесь, что вы указали пространство имен, содержащее статический класс, с помощью метода расширения:
@using System.Web.Mvc
...
<td>@Html.Truncate(item.Title, 25)</td>
или если вы хотите, чтобы помощник был доступен во всех представлениях Razor без необходимости добавления директивы using, вы можете добавить соответствующее пространство имен в раздел пространств имен ~/Views/web.config
файла:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="Namespace.Containig.Static.Class.With.Custom.Helpers" />
</namespaces>
</pages>
</system.web.webPages.razor>