У меня есть проект, который был разработан под MVC1, и спустя несколько месяцев я обновил его в MVC2.
Все было хорошо, день, когда мне нужно было отформатировать компьютер.
А что может не получиться с форматом? Я не знаю, смеется
Я установил MVC2 после форматирования, импортирую существующий проект, создаю его, и во время сборки не отображается ошибка, но с момента загрузки на рабочий сервер я получаю эту ошибку.
Метод не найден:
«System.Web.Mvc.MvcHtmlString
System.Web.Mvc.Html.LinkExtensions.RouteLink (System.Web.Mvc.HtmlHelper,
System.String, System.Object) '.
Я не могу понять, в чем причина проблемы.
Конечно, я предполагал, что это связано с MVC1, и ссылался на него, но опять не повезло.
Вот методы, с помощью которых возникла проблема
public static string PagerLinks(this HtmlHelper htmlHelper, string controllerName,
string actionName, int pageCount, int pageIndex, string cssClass, string moreTextCssClass,
string currentPageCssClass, int totalProducts) {
return PagerLinks(htmlHelper, controllerName, actionName, pageCount, pageIndex, "First",
"Previous", "Next", "Last", "more pages", cssClass, moreTextCssClass,
currentPageCssClass, totalProducts);
}
public static string PagerLinks(this HtmlHelper htmlHelper, string controllerName,
string actionName, int pageCount, int pageIndex, string firstPage, string previousPage,
string nextPage, string lastPage, string moreText, string cssClass, string moreTextCssClass,
string currentPageCssClass, int totalProducts) {
var builder = new StringBuilder();
if (String.IsNullOrEmpty(controllerName))
throw new Exception("controllerName and actionName must be specified for PageLinks.");
if (pageCount <= 1)
return String.Empty;
if (String.IsNullOrEmpty(cssClass)) builder.Append("<div>");
else builder.Append(String.Format("<div class=\"{0}\">", cssClass));
builder.Append(string.Format("{0} <b>{1}</b>", "total", totalProducts));
builder.Append("<br />");
if (pageIndex != 1) {
// first page link
builder.Append(
htmlHelper.RouteLink( "First", new {
controller = controllerName,
action = actionName,
id = 1
}, new { title = firstPage }
)
);
////
///
more code
///
///
}
Это синтаксис вызова
<%=Html.PagerLinks((string)ViewData["Controller"], "Page", (int)ViewData["TotalPages"], (int)ViewData["Page"], "theCssClass", "theMoreTextCssClass", "theCurrentPageCssClass", (int) ViewData["TotalProducts"])%>
Внутри метода PagerLinks существует эта строка, которую я предположил, что это,
как говорится в сообщении об ошибке, ошибка.
htmlHelper.RouteLink( "First", new {controller = controllerName,action = actionName,id = 1}, new { title = firstPage })
но я получаю сообщение об ошибке только при вызове через
<%=Html.PagerLinks((string)ViewData["Controller"], "Page", (int)ViewData["TotalPages"], (int)ViewData["Page"], "theCssClass", "theMoreTextCssClass", "theCurrentPageCssClass", (int) ViewData["TotalProducts"])%>
если я закомментирую вышеприведенную строку и заменил ее на приведенную ниже строку только для тестирования, ничего не произойдет
htmlHelper.RouteLink( "First", new {controller = controllerName,action = actionName,id = 1}, new { title = firstPage })
Буду признателен за любые предложения