我被困在由Steven Sanderson/Adum Freeman Pro ASP.Net MVC的參考書中。我已經完成了第185頁,其中HTML幫助器將用於返回鏈接頁面的數量。我發現在這個網站解決了我的問題與本參考書的幫助,並通過每一步都走了仍然有同樣的問題(鏈接)MVC extension method errorHTML助手類方法不起作用
當我運行在瀏覽器的代碼,我得到這個錯誤:
Compiler Error Message: CS1973: 'System.Web.Mvc.HtmlHelper' has no applicable method named 'PageLinks' but appears to have an extension method by that name. Extension methods cannot be dynamically dispatched. Consider casting the dynamic arguments or calling the extension method without the extension method syntax
該代碼生成的罰款,但如果我打開任何其他類來編輯這一行代碼我的幫助方法獲得上述相同的錯誤。
@Html.PageLinks(Model.PagingInfo, x => Url.Action("List", new {page = x}))
助手類:
namespace SportsStore.WebUI.HtmlHelpers
{
public static class PagingHelpers
{
public static MvcHtmlString PageLinks(this HtmlHelper html,
PagingInfo pagingInfo,
Func<int, string> pageURL)
{
StringBuilder results = new StringBuilder();
for (int i = 1; i <= pagingInfo.TotalPages; i++)
{
TagBuilder tag = new TagBuilder("a");
tag.MergeAttribute("href", pageURL(i));
tag.InnerHtml = i.ToString();
if (i == pagingInfo.CurrentPage)
tag.AddCssClass("selected");
results.Append(tag.ToString());
}
return MvcHtmlString.Create(results.ToString());
}
}
}
筆者認爲:
@{
ViewBag.Title = "Products";
}
@foreach (var p in Model.Products) {
<div class="item">
<h3>@p.Name</h3>
@p.Description
<h4>@p.Price.ToString("c")</h4>
</div>
}
<div class="pager">
@Html.PageLinks(Model.PagingInfo, x => Url.Action("List", new {page = x}))
</div>
的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="SportsStore.WebUI.HtmlHelpers"/>
</namespaces>
</pages>
</system.web.webPages.razor>
這個工作... @ Html.PageLinks((SportsStore.WebUI.Models.PagingInfo)型號.PagingInfo,x => Url.Action(「List」,new {page = x})) – Shawn 2012-03-21 04:50:35
我添加了@using SportsStore.WebUI.Models,它使您的示例工作。謝謝你的幫助! – Shawn 2012-03-21 04:53:23
請在相關問題和/或答案中編輯相關信息,或者在有新保證的情況下發布新答案。問題/回答的評論部分僅用於提供有關實際帖子的相關信息,如錯誤,更多詳細信息的請求等,而不是長時間討論,即使它們可能對所涉人員有所幫助。如果您需要繼續討論,請考慮將其交給聊天室。 – 2012-03-21 11:08:52