Хорошо, я пытаюсь реализовать методы расширения Repeater для HtmlHelper, как описано в блоге Фила Хаака здесь http://haacked.com/archive/2008/05/03/code-based-repeater-for-asp.net-mvc.aspx
Однако, когда я пытаюсь использовать его в своем представлении, я получаю сообщение об ошибке компиляции «System.Web.Mvc.HtmlHelper», в котором отсутствует определение «Repeater».
Вот мой класс расширения:
namespace MyAwesomeBlog.Helpers {
public static class HtmlHelpers {
public static void Repeater<T>(this HtmlHelper html
, IEnumerable<T> items
, Action<T> render
, Action<T> renderAlt) {
// Реализация не имеет значения
});
}
public static void Repeater<T>(this HtmlHelper html
, Action<T> render
, Action<T> renderAlt) {
// Реализация не имеет значения
});
}
public static void Repeater<T>(this HtmlHelper html
, string viewDataKey
, Action<T> render
, Action<T> renderAlt) {
// Реализация не имеет значения
});
}
public static void Repeater<T>(this HtmlHelper html
, IEnumerable<T> items
, string className
, string classNameAlt
, Action<T, string> render) {
// Реализация не имеет значения
});
}
}
}
Я включил это в свой Web.Config:
<add namespace="MyAwesomeBlog.Helpers"/>
Это мое использование метода расширения, на мой взгляд:
<% HtmlHelper.Repeater<Post>(Model, "post", "post-alt", (post, cssClassName) => { %>
<div class="<%=cssClassName %>">
<h1><%= post.Title %></h1>
<p>
<%= post.Body %>
</p>
</div>
<% }); %>
Тем не менее, компилятор выдает мне волнистые строки в разделе ".Repeater", говоря, что HtmlHelper не имеет такого метода.
Что я пропустил?