我是ASP.NET MVC的新手,無法弄清楚這一點。通過Professional ASP.NET MVC 2中的Nerdinner示例,我複製了PaginatedList助手類並決定對其進行改進,以便前後鏈接可以由類中的方法生成,而不是在每個視圖頁面中寫出。我複製這從視圖,它是在,Index.aspx的:ASP.NET MVC 2 RouteLink方法
if (Model.HasPreviousPage)
{
Response.Write(Html.RouteLink("<<<", "Users", new { page=(Model.PageIndex-1) }));
}
,並用它來創建助手\ PaginatedList.cs內此方法:
public string NavLinks()
{
if (HasPreviousPage)
{
return Html.RouteLink("<<<", "Users", new { page=(PageIndex-1) });
}
}
(HasPreviousPage是內的簡單方法。PaginatedList)
馬上就抱怨說:「‘HTML’這個名字並不在目前的情況下存在,所以我修改了它帶一個參數:
public string NavLinks(HtmlHelper Html)
現在我得到''System.Web.Mvc.HtmlHelper'沒有包含'RouteLink'的定義,也沒有可以找到接受'System.Web.Mvc.HtmlHelper'類型的第一個參數的擴展方法'RouteLink' (你是否缺少使用指令或程序集引用?)「。
根據有關LinkExtensions.RouteLink方法的Microsoft文檔,「在Visual Basic和C#中,可以將此方法作爲任何類型爲HtmlHelper的對象的實例方法調用」。他們說謊嗎?
幫助!
我很高興我能對你有所幫助丹。我會誠實地說,我從來沒有真正把我的模型負責生成html,看起來你可能會這樣做。我一直認爲模型只包含視圖所需的數據。無論哪種方式,它的工作原理都是關於個人喜好的。祝你有個好的一天。 – JustinMichaels 2011-02-17 18:46:41