2012-01-21 4 views
1

j'utilisais Ajax.Pager dans MVC 2, qui a travaillé fine.Here est le code dans la vueAjax.Pager ne fonctionne pas dans MVC4

<%= Ajax.Pager(new AjaxOptions { UpdateTargetId = ViewData.Model.UpdateTargetId, OnBegin = "beginPagings", OnSuccess = "successPagings", OnFailure = "failurePaging" }, 
     ViewData.Model.PageSize, ViewData.Model.PageNumber, ViewData.Model.TotalItemCount, new { controller = ViewContext.Controller.ControllerContext.RouteData.Values["Controller"], action = ViewContext.Controller.ControllerContext.RouteData.Values["action"], Id = ViewContext.Controller.ControllerContext.RouteData.Values["id"], str = ViewContext.Controller.ControllerContext.RouteData.Values["str"] })%> 

ce qui est le code de lien constructeur AJaX

private MvcHtmlString GeneratePageLink(string linkText, int pageNumber) 
     { 
      var pageLinkValueDictionary = new RouteValueDictionary(this.linkWithoutPageValuesDictionary); 
      pageLinkValueDictionary.Add("page", pageNumber); 

      return ajaxHelper.ActionLink(linkText, pageLinkValueDictionary["action"].ToString(), pageLinkValueDictionary, ajaxOptions); 
     } 

Mais maintenant, lorsque je passe à MVC 4, les liens ne sont pas générés comme prévu.

Voici le code MVC 4 J'utilise dans la vue

@Ajax.Pager(new AjaxOptions { UpdateTargetId = Model.UpdateTargetId, OnBegin = "beginPagings", OnSuccess = "successPagings", OnFailure = "failurePaging" }, 
     Model.PageSize, Model.PageNumber, Model.TotalItemCount, new { controller = ViewContext.Controller.ControllerContext.RouteData.Values["Controller"], action = ViewContext.Controller.ControllerContext.RouteData.Values["action"], Id = ViewContext.Controller.ControllerContext.RouteData.Values["id"], str = ViewContext.Controller.ControllerContext.RouteData.Values["str"] }) 

Mais le lien généré est comme ci-dessous et son plus un lien. Son rendu en texte brut.

<a data-ajax="true" data-ajax-begin="beginPagings" data-ajax-failure="failurePaging" data-ajax-mode="replace" data-ajax-success="successPagings" data-ajax-update="#divGrid" href="">2</a> 

je suis tombé sur a article qui dit sa raison de « discret Javascript ». Ai-je raté quelque chose ??

Ce problème peut être lié à un similar issue in stack overflow

Répondre

2

Cela a fonctionné en utilisant

@Html.Raw() 

@Html.Raw(Ajax.Pager(new AjaxOptions { UpdateTargetId = Model.UpdateTargetId, OnBegin = "beginPagings", OnSuccess = "successPagings", OnFailure = "failurePaging" }, 
     Model.PageSize, Model.PageNumber, Model.TotalItemCount, new { controller = ViewContext.Controller.ControllerContext.RouteData.Values["Controller"], action = ViewContext.Controller.ControllerContext.RouteData.Values["action"], Id = ViewContext.Controller.ControllerContext.RouteData.Values["id"], str = ViewContext.Controller.ControllerContext.RouteData.Values["str"] })) 

Maintenant, le texte est rendu sous forme de liens ..

Justin's réponse a aidé me..Thanks Justin.

Questions connexes