我在视图中有一个Html.GlobalisedPageLinks扩展方法,但得到一条红线,说明我的viewmodel不包含该方法,我有一些无效的参数?
这一行:
<div class="actions-left">
<%= Html.GlobalisedPageLinks(Amico.Web.Mvc.Extensions.Enums.PageLinksFormat.Empty, Model.CurrentPage, Model.PageSize, Model.Total, x => Url.Action("Index", "Scorm", new { area = "Admin", page = x }))%>
</div>
扩展方法:
public static string GlobalisedPageLinks(this HtmlHelper html, Amico.Web.Mvc.Extensions.Enums.PageLinksFormat format, int currentPage, int pageSize, int totalResults, Func<int, string> pageUrl)
{
int totalPages = Math.Max(Convert.ToInt32(Math.Ceiling((double)totalResults / pageSize)), 1);
int startresult = ((Math.Max(1, currentPage) - 1) * pageSize) + 1;
int endresult = Math.Min(startresult + (pageSize - 1), totalResults);
string pagesText = html.Resource(Resources.Global.PageLinks.PageLinksFormatPages, currentPage, totalPages);
string resultsText = html.Resource(Resources.Global.PageLinks.PageLinksFormatResults, startresult, endresult, totalResults);
string firstText = html.Resource(Resources.Global.PageLinks.First);
string previousText = html.Resource(Resources.Global.PageLinks.Previous);
string nextText = html.Resource(Resources.Global.PageLinks.Next);
string lastText = html.Resource(Resources.Global.PageLinks.Last);
return "<span class='page-links'>" + html.PageLinks(format, currentPage, pageSize, totalResults, pageUrl,
pagesText, resultsText, firstText, previousText, nextText, lastText) + "</span>";
}
我错过了什么?
感谢
答案 0 :(得分:2)
您需要在视图中将using语句添加到包含扩展方法的类:
@using Amico.Web.Mvc.Extensions.YourExtensionClass
如果您需要在许多视图中访问此扩展类,您还可以在视图文件夹中的web.Config中将其命名空间添加为已知命名空间(此示例适用于MVC3,主机将与MVC4不同) :
<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="Amico.Web.Mvc.Extensions" />
</namespaces>
</pages>
</system.web.webPages.razor>