好吧,我試圖實現Repeater擴展方法到HtmlHelper中,如Phil Haack的博客http://haacked.com/archive/2008/05/03/code-based-repeater-for-asp.net-mvc.aspx 中所解釋的那樣。但是,當我嘗試在View中使用它時,編譯錯誤「System.Web.Mvc.HtmlHelper」不包含「Repeater」的定義。Asp.Net MVC HtmlHelper擴展方法不顯示
這裏是我的擴展類:
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沒有這樣的方法。
我錯過了什麼?
我剛剛弄明白了,當我看到你的答案完全正確時,我回過頭來回答自己的問題......結果我必須調用Html.Repeater,而不是HtmlHelper.Repeater。 –